网站地图    收藏   

主页 > 后端 > 网站安全 >

Discuz x!一个鸡肋SQL漏洞及修复方案 - 网站安全

来源:自学PHP网    时间:2015-04-16 23:15 作者: 阅读:

[导读] 在一定的情况下可以破坏SQL逻辑。这个有点不靠,不靠谱的前提:1,http: drops wooyun org papers 14042,arp3,有其他方法获取siteuniqueid,按照安装的算法来暴力破解或其他在dx api google google...

在一定的情况下可以破坏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);
}

 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论