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

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

缺陷编号: WooYun-2014-71516

漏洞标题: Discuz 5.x 6.x 7.x 前台SQL注入漏洞一枚

相关厂商: Discuz!

漏洞作者: ′雨。认证白帽子

提交时间: 2014-08-08 10:46

公开时间: 2014-11-06 10:48

漏洞类型: SQL注射漏洞

危害等级: 低

自评Rank: 1

漏洞状态: 厂商已经确认

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

Tags标签: 无

36人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-08: 细节已通知厂商并且等待厂商处理中
2014-08-12: 厂商已经确认,细节仅向厂商公开
2014-08-15: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-10-06: 细节向核心白帽子及相关领域专家公开
2014-10-16: 细节向普通白帽子公开
2014-10-26: 细节向实习白帽子公开
2014-11-06: 细节向公众公开

简要描述:

自从补课补完了 感觉自己都完全荒废了。
睡觉 看电视 看小说。 唉。

得开始努力学习考大学 哦也。
_________________________________________________________________________
看到map牛 发了几个dz7.2的 也看到还在更新 我也就看了看
前台注入一枚, 也都知道 如果ucenter 和 DZ 在一个裤里面的话就可以拿到uc_key
拿到uc_key了 然后……。
很简单的一个洞。

详细说明:

http://**.**.**.**/Discuz/7.2/Discuz_7.2_SC_GBK.zip

刚在官网下的这个。



首先说一下 这洞需要有权限发布投票才行 刚注册的会员是不能发布投票的

我看了下默认发布投票需要的权限 需要从注册会员开始才有发布投票的权限

1.jpg





2.jpg



看了一下注册会员所需要的积分是50分

50分 上传个头像 做个任务就差不多了(所以狗哥 这不算限制条件把?)

_________________________________________________________________________



在post.php中

从263行开始 也就是最后的那几行

code 区域
if($action == 'newthread') {
($forum['allowpost'] == -1) && showmessage('forum_access_disallow');
require_once DISCUZ_ROOT.'./include/newthread.inc.php';
} elseif($action == 'reply') {
($forum['allowreply'] == -1) && showmessage('forum_access_disallow');
require_once DISCUZ_ROOT.'./include/newreply.inc.php';
} elseif($action == 'edit') {
($forum['allowpost'] == -1) && showmessage('forum_access_disallow');
require_once DISCUZ_ROOT.'./include/editpost.inc.php';
} elseif($action == 'newtrade') {
($forum['allowpost'] == -1) && showmessage('forum_access_disallow');
require_once DISCUZ_ROOT.'./include/newtrade.inc.php';
}





包含了这么多文件进来 我找了这个文件看了起来include/editpost.inc.php



然后在include/editpost.inc.php 第272行左右



code 区域
if($thread['special'] == 1 && ($alloweditpoll || $isorigauthor) && !empty($polls)) {
$pollarray = '';
$pollarray['options'] = $polloption;
if($pollarray['options']) {
if(count($pollarray['options']) > $maxpolloptions) {
showmessage('post_poll_option_toomany');
}
foreach($pollarray['options'] as $key => $value) {
if(!trim($value)) {
$db->query("DELETE FROM {$tablepre}polloptions WHERE polloptionid='$key' AND tid='$tid'");
unset($pollarray['options'][$key]);
}
}
$polladd = ', special=\'1\'';



foreach($pollarray['options'] as $key => $value) {

这里直接把数组中的key带入到了delete查询当中。



再来看一下dz的全局文件

code 区域
foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
foreach($$_request as $_key => $_value) {
$_key{0} != '_' && $$_key = daddslashes($_value);
}
}





code 区域
function daddslashes($string, $force = 0) {
!defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
if(!MAGIC_QUOTES_GPC || $force) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val, $force);
}
} else {
$string = addslashes($string);
}
}
return $string;
}



这里先判断了gpc是否开启 如果没有开启 就用addslashes再来转义

这里对数组中的value进行转义 key无过滤。

code 区域
$db->query("DELETE FROM {$tablepre}polloptions WHERE polloptionid='$key' AND tid='$tid'



所以再进行这个查询的时候 我们就可以引入单引号了。

_______________________________________________________________



在执行循环之前有一个条件

if($thread['special'] == 1 && ($alloweditpoll || $isorigauthor) && !empty($polls))



这里($alloweditpoll || $isorigauthor) $isorigauthor判断是不是你是作者 如果你编辑的是你的文章的话 肯定是true。 $polls 这个直接就可以控制。

$thread['special'] == 1 之前我一直在纠结这个是啥东西。。

后面看了看发文章的时候的代码 这个$thread['special'] == 1代表的就是发布的是投票。



那如果我们自己发布一个投票 然后再编辑 就可以进入这里了。



3.jpg





首先发布一个投票。 发布完后 再点击编辑。

然后再抓一下包。



这里我输出了一下

code 区域
$polladd = '';
if($thread['special'] == 1 && ($alloweditpoll || $isorigauthor) && !empty($polls)) {
$pollarray = '';

$pollarray['options'] = $polloption;
var_dump ($polloption);exit;//输出





4.jpg



我擦 一看竟然已经有值了?

在这里我本来已经准备放弃了, 但是还是抱着试一试的态度 在url写了这个

5.jpg



发现还是可以控制 而且单引号 理所应当的没有被转义。

那不是就可以注入了吗? 构造一下语句。

code 区域
if(!trim($value)) {
$db->query("DELETE FROM {$tablepre}polloptions WHERE polloptionid='$key' AND tid='$tid'");



因为这里 数组中的value为false的时候才会进去

所以这里数组的value我们就不写



6.jpg





成功出数据。

漏洞证明:

6.jpg

修复方案:

foreach($pollarray['options'] as $key => $value) {

$key=addslashes($key);

if(!trim($value)) {

$db->query("DELETE FROM {$tablepre}polloptions WHERE polloptionid='$key' AND tid='$tid'");



? 还是看你们把。

版权声明:转载请注明来源 ′雨。@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-08-12 12:38

厂商回复:

问题收下。感谢您对discuz的关注,不过对于 dz7以及之前的版本,我们已经停止维护,产品距离现在都4,5年了。我们只能尽力敦促用户尽可能的升级到最新版

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共11人评价):
登陆后才能进行评分
63.7%
27.3%
9.1%
0%
0%

评价

  1. 2014-08-08 10:46 | 玉林嘎 认证白帽子 ( 普通白帽子 | Rank:941 漏洞数:108 )
    4

    mark

  2. 2014-08-08 10:49 | onlycjeg ( 实习白帽子 | Rank:38 漏洞数:5 )
    1

    好好补课啊,骚年;

  3. 2014-08-08 10:50 | do9gy ( 实习白帽子 | Rank:78 漏洞数:17 | Dog loves God。)
    1

    膜拜

  4. 2014-08-08 10:55 | 贫道来自河北 ( 普通白帽子 | Rank:1469 漏洞数:439 | 一个立志要把乌云集市变成零食店的男人)
    1

    @′ 雨。大牛你要火了

  5. 2014-08-08 10:56 | 浩天 认证白帽子 ( 普通白帽子 | Rank:925 漏洞数:80 | 哈!躁起来!)
    1

    @@!

  6. 2014-08-08 10:56 | Power ( 实习白帽子 | Rank:90 漏洞数:29 )
    1

    我日,膜拜....

  7. 2014-08-08 11:00 | 泳少 ( 普通白帽子 | Rank:255 漏洞数:83 | ★ 梦想这条路踏上了,跪着也要...)
    1

    mark

  8. 2014-08-08 11:04 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:42 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)
    1

    还能不能愉快的挖洞了~~~

  9. 2014-08-08 11:05 | 索马里的海贼 ( 普通白帽子 | Rank:264 漏洞数:25 | http://tieba.baidu.com/f?kw=WOW)
    1

    牛逼!

  10. 2014-08-08 11:06 | 索马里的海贼 ( 普通白帽子 | Rank:264 漏洞数:25 | http://tieba.baidu.com/f?kw=WOW)
    2

    危害等级: 低 自评为什么是低?有限制?

  11. 2014-08-08 11:07 | 铁蛋火车侠 ( 普通白帽子 | Rank:156 漏洞数:31 | Q群371620085 技术交流群 有漂亮妹纸!)
    1

    又来

  12. 2014-08-08 11:24 | ′ 雨。 认证白帽子 ( 普通白帽子 | Rank:1332 漏洞数:198 | Only Code Never Lie To Me.)
    1

    @索马里的海贼 因为太简单了。。。。

  13. 2014-08-08 11:40 | D_in ( 普通白帽子 | Rank:423 漏洞数:65 | 到我嘴里来)
    1

    你关注的白帽子 ′ 雨。 发表了漏洞 Discuz 7.2前台SQL注入漏洞一枚

  14. 2014-08-08 11:41 | mango ( 核心白帽子 | Rank:2145 漏洞数:310 | 解决问题的第一步,是要承认问题的存在。)
    1

    @′ 雨。 怎么简单?

  15. 2014-08-08 12:15 | 疯子 ( 普通白帽子 | Rank:259 漏洞数:45 | 世人笑我太疯癫,我笑世人看不穿~)
    2

    我擦,碉堡了,雨神V5

  16. 2014-08-08 12:18 | char ( 路人 | Rank:13 漏洞数:3 | 中国平安,不只保险这么简单。)
    1

    @′ 雨。 应该看影响程度定危害等级。

  17. 2014-08-08 12:28 | 浅兮 ( 实习白帽子 | Rank:70 漏洞数:30 )
    1

    支持支持,又有oday了!嘿嘿!

  18. 2014-08-08 14:00 | phantomer ( 路人 | Rank:8 漏洞数:4 | 菜比一个。求勿喷。)
    3

    叼~

  19. 2014-08-08 15:05 | ′ 雨。 认证白帽子 ( 普通白帽子 | Rank:1332 漏洞数:198 | Only Code Never Lie To Me.)
    4

    仔细看了下 5.x 6.x 7.x 都存在这洞。 狗哥 [email protected]

  20. 2014-08-08 15:22 | mango ( 核心白帽子 | Rank:2145 漏洞数:310 | 解决问题的第一步,是要承认问题的存在。)
    1

    @′ 雨。 流弊~~~

  21. 2014-08-08 15:27 | Jn· ( 路人 | Rank:30 漏洞数:14 | 本小菜很可爱,如果不服你TM来打我啊--哎呀...)
    1

    @′ 雨。 流弊~~~~

  22. 2014-08-08 15:48 | Melody ( 路人 | Rank:5 漏洞数:3 | 啊)
    3

    V5V5V5

  23. 2014-08-08 16:22 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)
    1

    @′ 雨。 确认就行

  24. 2014-08-08 16:36 | mango ( 核心白帽子 | Rank:2145 漏洞数:310 | 解决问题的第一步,是要承认问题的存在。)
    3

    @疯狗 变态啊!!!

  25. 2014-08-08 17:10 | 浩天 认证白帽子 ( 普通白帽子 | Rank:925 漏洞数:80 | 哈!躁起来!)
    2

    你们这群大便态

  26. 2014-08-08 17:14 | bitcoin ( 普通白帽子 | Rank:857 漏洞数:248 | 学习是最好的投资!)
    3

    大牛大牛,求带!

  27. 2014-08-08 17:30 | 只发通用型 ( 实习白帽子 | Rank:93 漏洞数:14 | 刷通用型奖金小号)
    2

    流弊~我找了两天都没找到

  28. 2014-08-09 22:05 | 冉冉升起 ( 路人 | Rank:14 漏洞数:7 | ...)
    3

    你关注的白帽子 ′ 雨。 发表了漏洞 Discuz 7.2前台SQL注入漏洞一枚

  29. 2014-08-10 12:39 | 有妹子送上 ( 实习白帽子 | Rank:89 漏洞数:28 | 一只脚踩扁了紫罗兰,紫罗兰却把香味留在了...)
    2

    mk

  30. 2014-08-11 18:10 | M4sk ( 普通白帽子 | Rank:1218 漏洞数:323 | 啥都不会....)
    2

    mark

  31. 2014-08-11 22:52 | 秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)
    2

    NB!

  32. 2014-08-12 13:01 | ′ 雨。 认证白帽子 ( 普通白帽子 | Rank:1332 漏洞数:198 | Only Code Never Lie To Me.)
    2

    http://www.discuz.net/thread-3579915-1-1.html @Discuz! 7.x不是还在发补丁?

  33. 2014-08-12 14:02 | 蓝莓说 ( 实习白帽子 | Rank:68 漏洞数:19 | 爱网络安全 代码审计 php网站开发)
    2

    @′ 雨。 补丁已经不出了别指望在修复了

  34. 2014-08-12 14:03 | roker ( 普通白帽子 | Rank:372 漏洞数:109 )
    2

    @蓝莓说 。。。。。。。。。。。。。

  35. 2014-08-12 14:36 | 疯子 ( 普通白帽子 | Rank:259 漏洞数:45 | 世人笑我太疯癫,我笑世人看不穿~)
    2

    @蓝莓说 wp的0day呢?DZ!X的0day呢?求一键getshell

  36. 2014-08-12 14:45 | 大大灰狼 ( 普通白帽子 | Rank:278 漏洞数:64 | Newbie)
    2

    人家都停止维护4,5年了

  37. 2014-08-13 13:31 | 大风对我说 ( 路人 | Rank:6 漏洞数:2 | 酱油党)
    2

    牛逼

  38. 2014-08-17 00:32 | 取经中的稳健少年 ( 路人 | Rank:2 漏洞数:1 | 取经中的稳健少年)
    3

    这是要飞的节奏啊

  39. 2014-09-04 11:32 | wefgod ( 核心白帽子 | Rank:1829 漏洞数:183 | 力不从心)
    2

    PHP为何会出这种漏洞啊……其它语言好像都没见过

  40. 2014-09-04 11:59 | 寂寞的瘦子 ( 普通白帽子 | Rank:242 漏洞数:53 | ☯☯☯☯☯☯☯☯☯☯)
    3

    @wefgod php数组是哈希表,biubiubiu

  41. 2014-09-15 20:56 | sec_jtn ( 普通白帽子 | Rank:134 漏洞数:56 | 本想无耻的刷rank,最后发现是我想太多了。...)
    4

    ....小菜看了整个人都不舒服了

  42. 2014-09-22 20:43 | 5nooze ( 路人 | Rank:0 漏洞数:2 | 菜笔)
    2

    关注..

  43. 2014-10-16 10:46 | QinHeart ( 路人 | Rank:2 漏洞数:2 | 乌云奖金:690150.00 元)
    1

    关注

  44. 2014-12-06 09:42 | 拨开乌云 ( 路人 | Rank:6 漏洞数:4 )
    2

    @索马里的海贼 因为低调与版本低

  45. 2015-01-14 11:34 | %230CC ( 路人 | Rank:6 漏洞数:2 | 溜溜)
    2

    膜拜

  46. 2015-02-05 13:07 | 血梦 ( 实习白帽子 | Rank:43 漏洞数:12 | 一个自学成才的零零后。)
    1

    膜拜

  47. 2015-03-05 10:52 | 哎呦我去 ( 路人 | Rank:4 漏洞数:4 | 新手白帽子!!继续努力)
    1

    大牛无处不在啊

  48. 2015-04-21 20:09 | 子非鱼 ( 实习白帽子 | Rank:31 漏洞数:14 )
    1

    不明真相的围观群众!

  49. 2015-04-24 23:32 | 昌维 ( 路人 | Rank:15 漏洞数:4 | QQ:867597730,百度贴吧ID:昌维001 个人...)
    1

    为什么这么老的版本的洞现在才被人发现,

  50. 2015-05-27 16:58 | aygj1412 ( 路人 | 还没有发布任何漏洞 | 只有神知道的世界)
    1

    间隔那么久还有人用啊?

  51. 2015-07-22 08:31 | 九零奶嘴 ( 路人 | Rank:8 漏洞数:4 | 小菜比)
    1

    膜拜大神

登录后才能发表评论,请先 登录