漏洞概要
关注数(24 )
关注此漏洞
漏洞标题:Discuz 5.x 6.x 7.x 前台SQL注入漏洞一枚
提交时间:2014-08-08 10:46
修复时间:2014-11-06 10:48
公开时间:2014-11-06 10:48
漏洞类型:SQL注射漏洞
危害等级:低
自评Rank:1
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情 披露状态:
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 刚在官网下的这个。 首先说一下 这洞需要有权限发布投票才行 刚注册的会员是不能发布投票的 我看了下默认发布投票需要的权限 需要从注册会员开始才有发布投票的权限
看了一下注册会员所需要的积分是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代表的就是发布的是投票。 那如果我们自己发布一个投票 然后再编辑 就可以进入这里了。
首先发布一个投票。 发布完后 再点击编辑。 然后再抓一下包。 这里我输出了一下
$polladd = ''; if($thread['special'] == 1 && ($alloweditpoll || $isorigauthor) && !empty($polls)) { $pollarray = ''; $pollarray['options'] = $polloption; var_dump ($polloption);exit;//输出
我擦 一看竟然已经有值了? 在这里我本来已经准备放弃了, 但是还是抱着试一试的态度 在url写了这个
发现还是可以控制 而且单引号 理所应当的没有被转义。 那不是就可以注入了吗? 构造一下语句。
if(!trim($value)) { $db->query("DELETE FROM {$tablepre}polloptions WHERE polloptionid='$key' AND tid='$tid'");
因为这里 数组中的value为false的时候才会进去 所以这里数组的value我们就不写
成功出数据。
漏洞证明: 修复方案: 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年了。我们只能尽力敦促用户尽可能的升级到最新版
最新状态: 暂无
漏洞评价:
评论
2014-08-08 10:46 |
玉林嘎 ( 普通白帽子 | Rank:758 漏洞数:96 )
2014-08-08 10:49 |
onlycjeg ( 实习白帽子 | Rank:38 漏洞数:5 | 我就看看,我不说话.)
2014-08-08 10:50 |
do9gy ( 实习白帽子 | Rank:61 漏洞数:15 | Dog loves God。)
2014-08-08 10:55 |
贫道来自河北 ( 普通白帽子 | Rank:1395 漏洞数:423 | 一个立志要把乌云集市变成零食店的男人)
2014-08-08 10:56 |
浩天 ( 普通白帽子 | Rank:915 漏洞数:79 | 度假中...)
2014-08-08 10:56 |
Power ( 实习白帽子 | Rank:54 漏洞数:22 | 还需要等待.........)
2014-08-08 11:00 |
泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)
2014-08-08 11:04 |
鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:42 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)
2014-08-08 11:05 |
索马里的海贼 ( 普通白帽子 | Rank:254 漏洞数:24 | http://tieba.baidu.com/f?kw=WOW)
2014-08-08 11:06 |
索马里的海贼 ( 普通白帽子 | Rank:254 漏洞数:24 | http://tieba.baidu.com/f?kw=WOW)
2014-08-08 11:07 |
铁蛋火车侠 ( 普通白帽子 | Rank:156 漏洞数:31 | Q群371620085 技术交流群 有漂亮妹纸!)
2014-08-08 11:24 |
′ 雨。 ( 普通白帽子 | Rank:1231 漏洞数:190 | Only Code Never Lie To Me.)
2014-08-08 11:40 |
D_in ( 普通白帽子 | Rank:413 漏洞数:62 | 到我嘴里来)
你关注的白帽子 ′ 雨。 发表了漏洞 Discuz 7.2前台SQL注入漏洞一枚
2014-08-08 11:41 |
mango ( 核心白帽子 | Rank:1668 漏洞数:248 | 我有个2b女友!)
2014-08-08 12:15 |
疯子 ( 普通白帽子 | Rank:242 漏洞数:42 | 世人笑我太疯癫,我笑世人看不穿~)
2014-08-08 12:18 |
char ( 路人 | Rank:13 漏洞数:3 | 中国平安,不只保险这么简单。)
2014-08-08 12:28 |
浅兮 ( 实习白帽子 | Rank:70 漏洞数:30 )
2014-08-08 14:00 |
phantomer ( 路人 | Rank:8 漏洞数:4 | 菜比一个。求勿喷。)
2014-08-08 15:05 |
′ 雨。 ( 普通白帽子 | Rank:1231 漏洞数:190 | Only Code Never Lie To Me.)
仔细看了下 5.x 6.x 7.x 都存在这洞。 狗哥 换个霸气点的标题可好@疯狗
2014-08-08 15:22 |
mango ( 核心白帽子 | Rank:1668 漏洞数:248 | 我有个2b女友!)
2014-08-08 15:27 |
Jn· ( 路人 | Rank:30 漏洞数:14 | 本小菜很可爱,如果不服你TM来打我啊--哎呀...)
2014-08-08 15:48 |
Melody ( 路人 | Rank:5 漏洞数:3 | 啊)
2014-08-08 16:22 |
疯狗 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)
2014-08-08 16:36 |
mango ( 核心白帽子 | Rank:1668 漏洞数:248 | 我有个2b女友!)
2014-08-08 17:10 |
浩天 ( 普通白帽子 | Rank:915 漏洞数:79 | 度假中...)
2014-08-08 17:14 |
bitcoin ( 普通白帽子 | Rank:715 漏洞数:218 | 学习是最好的投资!)
2014-08-08 17:30 |
只发通用型 ( 实习白帽子 | Rank:93 漏洞数:14 | 刷通用型奖金小号)
2014-08-09 22:05 |
冉冉升起 ( 路人 | Rank:12 漏洞数:6 | ...)
你关注的白帽子 ′ 雨。 发表了漏洞 Discuz 7.2前台SQL注入漏洞一枚
2014-08-10 12:39 |
有妹子送上 ( 实习白帽子 | Rank:89 漏洞数:28 | 杭州最帅的男人)
2014-08-11 18:10 |
M4sk ( 普通白帽子 | Rank:1199 漏洞数:319 | 国内信息安全任重而道远,还需要厂商和白帽...)
2014-08-11 22:52 |
秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)
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不是还在发补丁?
2014-08-12 14:02 |
蓝莓说 ( 实习白帽子 | Rank:60 漏洞数:18 | 爱网络安全 代码审计 php网站开发)
2014-08-12 14:03 |
roker ( 普通白帽子 | Rank:357 漏洞数:108 )
2014-08-12 14:36 |
疯子 ( 普通白帽子 | Rank:242 漏洞数:42 | 世人笑我太疯癫,我笑世人看不穿~)
@蓝莓说 wp的0day呢?DZ!X的0day呢?求一键getshell
2014-08-12 14:45 |
大大灰狼 ( 普通白帽子 | Rank:248 漏洞数:53 | Newbie)
2014-08-13 13:31 |
大风对我说 ( 路人 | Rank:6 漏洞数:2 | 酱油党)
2014-08-17 00:32 |
取经中的稳健少年 ( 路人 | Rank:2 漏洞数:1 | 取经中的稳健少年)
2014-09-04 11:32 |
wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)
2014-09-04 11:59 |
寂寞的瘦子 ( 普通白帽子 | Rank:242 漏洞数:53 | 一切语言转汇编理论)
@wefgod php数组是哈希表,biubiubiu
2014-09-15 20:56 |
sec_jtn ( 普通白帽子 | Rank:134 漏洞数:56 | 本想无耻的刷rank,最后发现是我想太多了。...)
2014-09-22 20:43 |
5nooze ( 路人 | Rank:0 漏洞数:2 | 菜笔)
2014-10-16 10:46 |
QinHeart ( 路人 | Rank:2 漏洞数:2 | 乌云奖金:690150.00 元)
2014-12-06 09:42 |
拨开乌云 ( 路人 | Rank:6 漏洞数:4 )
2015-01-14 11:34 |
%230CC ( 路人 | Rank:6 漏洞数:2 | 溜溜)
2015-02-05 13:07 |
血梦 ( 实习白帽子 | Rank:32 漏洞数:11 | www.blackcyber.org)
2015-03-05 10:52 |
哎呦我去 ( 路人 | Rank:2 漏洞数:3 | 新手白帽子!!继续努力)
2015-04-21 20:09 |
子非鱼 ( 实习白帽子 | Rank:31 漏洞数:14 | 联系Q896738539)
2015-04-24 23:32 |
昌维 ( 路人 | Rank:2 漏洞数:3 | QQ:867597730,百度贴吧ID:昌维001)
2015-05-27 16:58 |
aygj1412 ( 路人 | 还没有发布任何漏洞 | 只有神知道的世界)
2015-07-22 08:31 |
九零奶嘴 ( 路人 | Rank:8 漏洞数:4 | 小菜比)