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

看乌云有人爆了这个漏洞:http://www.wooyun.org/bugs/wooyun-2014-071516
感觉应该是editpost.inc.php里投票的漏洞。因为dz已经确定不会再修补7.x以前的漏洞了,所以直接贴细节吧 。
问题出在 editpost.inc.php的281行,对用户提交的polloption数组直接解析出来带入SQL语句,因为默认只对数组值过滤,而不过滤键,所以会导致一个DELETE注入。

?


1

2

3

4

5

6

7

8

9

10

11

$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("DELETE FROM {$tablepre}polloptions WHERE polloptionid=‘$key‘ AND tid=‘$tid‘");

unset($pollarray[‘options‘][$key]);

}

}

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

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

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

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

修补方法:

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

?


1

$key=addslashes($key);

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

时间: 2024-07-30 15:05:43

Discuz 5.x/6.x/7.x投票SQL注入分析的相关文章

从阅读Discuz的核心代码并给出注释的经历分析程序员该如何阅读代码?

本文标签:   程序员 php Discuz的核心代码 框架 深度学习框架 阅读优秀的代码,是技术水平成长的最佳途径.记得每个进来的新人,我都做过阅读优秀代码的要求,但几乎都只能坚持很少一段时间而已. 前晚大家还在开玩笑的讨论,都是因为看了前人的一些写法,才学会了一些乱七八糟的花招. 晚上我又开始重新阅读Discuz的核心代码,花了1h多的时间,才完成一个core文件的注释. 注释后的代码: <?php /** * [Discuz!] (C)2001-2099 Comsenz Inc. * Th

discuz 7.2 faq.php sql注入的一点研究

6.2号(可能更早)看到网上这个exp,是一个discuz 7.2的sql注射漏洞 经过多番考证,网上多数exp中都存在这些或者那些的问题,我自己利用和修改后总结,利用方法如下: Discuz 7.2 /faq.php SQL注入漏洞 1.获取数据库版本信息 faq.php?action=grouppermission&gids[99]='&gids[100][0]=) and (select 1 from (select count(*),concat(version(),floor(r

Discuz 7.2 /faq.php SQL注入漏洞

测试方法: 提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! http://www.xxx.com/faq.php?action=grouppermission&gids[99]='&gids[100][0]=) and (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)%23 修复方法: 修复文件:

Discuz!7.2 faq.php文件SQL注入漏洞分析及利用实战

[antian365.com] simeon 最近网上公开了Discuz!7.2版本faq.php文件SQL注入0day,通过对文件漏洞分析以及实战测试,效果不错,公开利用exp的利用需要对SQL语句以及数据库等相当了解,在某些情况下需要多种技术配合才能最终攻克目标,下面就漏洞代码以及实战利用等进行探讨,对获取管理员密码的利用,uc_key获取webshell,插件导入获取Webshell等进行探讨. 1. faq.php文件SQL注入漏洞代码分析 本次存在漏洞的文件为faq.php,打开该文件

Discuz &lt;= 7.2 SQL注入漏洞详情

Discuz树大招风已成常态,不过对于其他整站程序何尝不是如此?是否曾记得大明湖畔的PHPCMS和DEDCMS万人破的场景,流行整站程序最重要的还是漏洞的快速响应. 0x01 漏洞成因: 在<高级PHP应用程序漏洞审核技术>一文里的"魔术引号带来的新的安全问题"一节里,有提到通过提取魔术引号产生的“\”字符带来的安全问题,同样这个问题在这里又一次完美体现,如下面的代码片段: 1 // foo.php?xigr='ryat 2 3 function daddslashes($

论php常见的问题[转载自原乌云]

论PHP常见的漏洞 ′ 雨. · 2015/01/14 10:08 0x00 前言 里面很多都是像laterain学习到的, 如果能考上cuit的话 自动献菊花了. 0x01 安装的问题 首先拿到一份源码 肯定是先install上. 而在安装文件上又会经常出现问题. 一般的安装文件在安装完成后 基本上都不会自动删除这个安装的文件 我遇到过的会自动删除的好像也就qibocms了. 其他的基本都是通过生成一个lock文件 来判断程序是否安装过了 如果存在这个lock文件了 就会退出了. 这里首先 先

Discuz漏洞汇总

Discuz漏洞拿服务器 Google关键字以及常有目录: #范例:链接------关键字------CMS别称 #范例:连接------正则表达式------匹配关键字------CMS别称 /------Powered by.*?<------Discuz!------Discuz(康盛) /------Powered by.*?</a></strong>------Discuz!------Discuz(康盛) /robots.txt------discuz------

Discuz!7.2漏洞利用过程演示

Discuz!7.2版本,这个版本是09年的平台了,现在已经是X版本了,不过里面的一些知识倒是到现在也还适用. 简述:利用Discuz!7.2的SQL注入漏洞爆出管理员用户密码后再利用xml检测漏洞上传一句话木马+菜刀getshell获得服务器控制权 实现过程: 首先,找到Discuz!版本为7.2的网站. 打开K8飞刀工具并选择Exploit下的Discuz!7.2项 选择faq.php 爆出管理员邮箱和加密后的管理员密码 再cmd5网站对加密数据串解密获得管理员明文密码登录Discuz!论坛

Discuz! 的编码规范

http://open.discuz.net/?ac=document&page=dev_coderule 前言 本规范由编程原则组成,融合并提炼了开发人员长时间积累下来的成熟经验,意在帮助形成良好一致的编程风格. 适用范围 如无特殊说明,以下规则要求完全适用于Discuz!项目,同时也可大部分适用于COMSENZ旗下其他PHP项目. 标准化的重要性和好处 当一个软件项目尝试着遵守公共一致的标准时,可以使参与项目的开发人员更容易了解项目中的代码.弄清程序的状况.使新的参与者可以很快的适应环境,防