未加星标

Discuz 5.x/6.x/7.x投票SQL注入分析

字体大小 | |
[web安全 所属分类 web安全 | 发布者 店小二04 | 时间 2015 | 作者 diroverflow ] 0人收藏点击收藏
看乌云有人爆了这个漏洞:http://www.wooyun.org/bugs/wooyun-2014-071516

感觉应该是editpost.inc.php里投票的漏洞。因为dz已经确定不会再修补7.x以前的漏洞了,所以直接贴细节吧 。

问题出在 editpost.inc.php的281行,对用户提交的polloption数组直接解析出来带入SQL语句,因为默认只对数组值过滤,而不过滤键,所以会导致一个DELETE注入。

$pollarray['options']=$polloption;
if($pollarray['options']){
if(count($pollarray['options'])>$maxpolloptions){
showmessage('post_poll_option_toomany');
}
foreach($pollarray['options']as$key=>$value){//这里直接解析出来没处理$key
if(!trim($value)){
$db->query("DELETEFROM{$tablepre}polloptionsWHEREpolloptionid='$key'ANDtid='$tid'");
unset($pollarray['options'][$key]);
}
}

利用方法:

用注册账户发布一个投票帖子,然后点击“编辑”,如下图

Discuz 5.x/6.x/7.x投票SQL注入分析

Discuz 5.x/6.x/7.x投票SQL注入分析

然后用burp拦截请求,点“编辑帖子”,修改其中的polloption为注入语句:


Discuz 5.x/6.x/7.x投票SQL注入分析

Discuz 5.x/6.x/7.x投票SQL注入分析

因为代码判断trim($value)为空才执行下面的语句,所以一定要把范冰冰删掉。

返回结果已经成功注入了:


Discuz 5.x/6.x/7.x投票SQL注入分析

Discuz 5.x/6.x/7.x投票SQL注入分析

修补方法:

如果不方便升级到Discuz X的话,可以修改editpost.inc.php文件,增加一行:
$key=addslashes($key);

本文web安全相关术语:黑盒测试方法 黑盒测试和白盒测试 网站安全检测 360网站安全检测 网络安全知识 网络安全技术 网络信息安全 网络安全工程师

主题: SQLSQL注入
分页:12
转载请注明
本文标题:Discuz 5.x/6.x/7.x投票SQL注入分析
本站链接:http://www.codesec.net/view/57246.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | web安全 | 评论(0) | 阅读(398)