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

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

缺陷编号:wooyun-2014-071516

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

相关厂商:Discuz!

漏洞作者: ′雨。

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

修复时间:2014-11-06 10:48

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

漏洞类型:SQL注射漏洞

危害等级:低

自评Rank:1

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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://download.discuz.net/Discuz/7.2/Discuz_7.2_SC_GBK.zip
刚在官网下的这个。
首先说一下 这洞需要有权限发布投票才行 刚注册的会员是不能发布投票的
我看了下默认发布投票需要的权限 需要从注册会员开始才有发布投票的权限

1.jpg


2.jpg


看了一下注册会员所需要的积分是50分
50分 上传个头像 做个任务就差不多了(所以狗哥 这不算限制条件把?)
_________________________________________________________________________
在post.php中
从263行开始 也就是最后的那几行

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行左右

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的全局文件

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


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无过滤。

$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


首先发布一个投票。 发布完后 再点击编辑。
然后再抓一下包。
这里我输出了一下

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

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


4.jpg


我擦 一看竟然已经有值了?
在这里我本来已经准备放弃了, 但是还是抱着试一试的态度 在url写了这个

5.jpg


发现还是可以控制 而且单引号 理所应当的没有被转义。
那不是就可以注入了吗? 构造一下语句。

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年了。我们只能尽力敦促用户尽可能的升级到最新版

最新状态:

暂无


漏洞评价:

评论

  1. 2014-08-08 10:46 | 玉林嘎 ( 普通白帽子 | Rank:758 漏洞数:96 )

    mark

  2. 2014-08-08 10:49 | onlycjeg ( 实习白帽子 | Rank:38 漏洞数:5 | 我就看看,我不说话.)

    好好补课啊,骚年;

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

    膜拜

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

    @′ 雨。大牛你要火了

  5. 2014-08-08 10:56 | 浩天 认证白帽子 ( 普通白帽子 | Rank:915 漏洞数:79 | 度假中...)

    @@!

  6. 2014-08-08 10:56 | Power ( 实习白帽子 | Rank:54 漏洞数:22 | 还需要等待.........)

    我日,膜拜....

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

    mark

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

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

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

    牛逼!

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

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

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

    又来

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

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

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

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

  14. 2014-08-08 11:41 | mango ( 核心白帽子 | Rank:1668 漏洞数:248 | 我有个2b女友!)

    @′ 雨。 怎么简单?

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

    我擦,碉堡了,雨神V5

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

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

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

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

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

    叼~

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

    仔细看了下 5.x 6.x 7.x 都存在这洞。 狗哥 换个霸气点的标题可好@疯狗

  20. 2014-08-08 15:22 | mango ( 核心白帽子 | Rank:1668 漏洞数:248 | 我有个2b女友!)

    @′ 雨。 流弊~~~

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

    @′ 雨。 流弊~~~~

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

    V5V5V5

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

    @′ 雨。 确认就行

  24. 2014-08-08 16:36 | mango ( 核心白帽子 | Rank:1668 漏洞数:248 | 我有个2b女友!)

    @疯狗 变态啊!!!

  25. 2014-08-08 17:10 | 浩天 认证白帽子 ( 普通白帽子 | Rank:915 漏洞数:79 | 度假中...)

    你们这群大便态

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

    大牛大牛,求带!

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

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

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

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

  29. 2014-08-10 12:39 | 有妹子送上 ( 实习白帽子 | Rank:89 漏洞数:28 | 杭州最帅的男人)

    mk

  30. 2014-08-11 18:10 | M4sk ( 普通白帽子 | Rank:1199 漏洞数:319 | 国内信息安全任重而道远,还需要厂商和白帽...)

    mark

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

    NB!

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

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

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

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

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

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

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

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

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

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

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

    牛逼

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

    这是要飞的节奏啊

  39. 2014-09-04 11:32 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

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

  40. 2014-09-04 11:59 | 寂寞的瘦子 ( 普通白帽子 | Rank:242 漏洞数:53 | 一切语言转汇编理论)

    @wefgod php数组是哈希表,biubiubiu

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

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

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

    关注..

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

    关注

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

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

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

    膜拜

  46. 2015-02-05 13:07 | 血梦 ( 实习白帽子 | Rank:32 漏洞数:11 | www.blackcyber.org)

    膜拜

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

    大牛无处不在啊

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

    不明真相的围观群众!

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

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

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

    间隔那么久还有人用啊?

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

    膜拜大神