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

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

缺陷编号:wooyun-2014-068077

漏洞标题:Discuz x!一个鸡肋SQL漏洞

相关厂商:Discuz!

漏洞作者: Map

提交时间:2014-07-10 17:38

修复时间:2014-10-08 17:40

公开时间:2014-10-08 17:40

漏洞类型:SQL注射漏洞

危害等级:低

自评Rank:4

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

在一定的情况下可以破坏SQL逻辑。

详细说明:

这个有点不靠,不靠谱的前提:
1,http://drops.wooyun.org/papers/1404
2,arp
3,有其他方法获取siteuniqueid,按照安装的算法来暴力破解或其他
在dx/api/google/google.php内on_gtt函数内有一段代码:
$posts = getgpc('post') ? explode(',', getgpc('post')) : array();

if($posts) {
$posts[0] = intval($posts[0]);
$posts[1] = intval($posts[1]);
$posts = implode(',', $posts);
}


这里$posts里的key 0 和key 1虽然都intval了,但是它还可以有key 3 key 4 key 5的,结果这个字符串被implode了。
这个$posts最后进入到了SQL查询里

if($posts) {
$pquery = DB::query("SELECT tid, pid, authorid, message FROM ".DB::table($tablename)." WHERE tid IN (".dimplode($tids).") AND first=0 LIMIT $posts", 'SILENT');


漏洞证明:

如上。

修复方案:

if($posts) {
$_posts = array();
$_posts[0] = intval($posts[0]);
$_posts[1] = intval($posts[1]);
$posts = implode(',', $_posts);
}

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2014-07-11 15:40

厂商回复:

感谢您提出的问题,我们尽快予以修复

最新状态:

暂无