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

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

缺陷编号:wooyun-2012-014076

漏洞标题:dedeCMS 最新注入漏洞一枚

相关厂商:DeDeCMS

漏洞作者: cyg07

提交时间:2012-10-30 19:56

修复时间:2012-10-31 13:49

公开时间:2012-10-31 13:49

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:7

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-10-30: 积极联系厂商并且等待厂商认领中,细节不对外公开
2012-10-31: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

hf
由于对参数的变量未作初始化检测及使用了类反射的技巧导致 plus\feedback.php 中变量 $typeid 存在注入风险。

详细说明:

由于官方已经发布补丁,而且漏洞未提供POC攻击代码,故此漏洞提前公开。
补丁地址:http://bbs.dedecms.com/551651.html


构造的方式我不提供了,但是你有心阅读下代码就会明白了。

...
if($comtype == 'comments')
{
$arctitle = addslashes($title);
if($msg!='')
{
$inquery = "INSERT INTO `#@__feedback`(`aid`,`typeid`,`username`,`arctitle`,`ip`,`ischeck`,`dtime`, `mid`,`bad`,`good`,`ftype`,`face`,`msg`)
VALUES ('$aid','$typeid','$username','$arctitle','$ip','$ischeck','$dtime', '{$cfg_ml->M_ID}','0','0','$feedbacktype','$face','$msg'); ";
$rs = $dsql->ExecuteNoneQuery($inquery);
if(!$rs)
{
ShowMsg(' 发表评论错误! ', '-1');
//echo $dsql->GetError();
exit();
}
}
}
//引用回复
elseif ($comtype == 'reply')
{
$row = $dsql->GetOne("SELECT * FROM `#@__feedback` WHERE id ='$fid'");
$arctitle = $row['arctitle'];
$aid =$row['aid'];
$msg = $quotemsg.$msg;
$msg = HtmlReplace($msg, 2);
$inquery = "INSERT INTO `#@__feedback`(`aid`,`typeid`,`username`,`arctitle`,`ip`,`ischeck`,`dtime`,`mid`,`bad`,`good`,`ftype`,`face`,`msg`)
VALUES ('$aid','$typeid','$username','$arctitle','$ip','$ischeck','$dtime','{$cfg_ml->M_ID}','0','0','$feedbacktype','$face','$msg')";
$dsql->ExecuteNoneQuery($inquery);
}

漏洞证明:

下面我给出一张带了echo信息的问题结果演示。

修复方案:

今天突发想作作代码审计,dedecms中HTTP的输入上用类反射这个技巧第一次见(好吧,我承认我是第一次玩PHP代码审计)。
建议考虑在反射上作得全面点,支持输入参数的类型和开发对应的过滤器作到更灵活更安全,这会给你们解决其中很多没反馈的问题。
gl

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝

漏洞Rank:8 (WooYun评价)


漏洞评价:

评论

  1. 2012-10-30 23:03 | Henry:bobo ( 普通白帽子 | Rank:104 漏洞数:22 | 本胖吊!~又高又肥2个奶奶像地雷)

    神奇的路人甲

  2. 2012-10-31 09:50 | 撒旦 ( 路人 | Rank:5 漏洞数:1 | 专注WEB安全,专注网络安全)

    求忽略

  3. 2012-10-31 11:08 | 苦逼老爷爷 ( 普通白帽子 | Rank:211 漏洞数:17 | 用户太懒什么都没留下)

    @撒旦 哪需要忽略啊,那简要描述也太“简要”了,已经很明白了嘛。。

  4. 2012-10-31 13:35 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    奇怪 不是全过滤了么 默认

  5. 2012-10-31 14:59 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    ......我懂了

  6. 2012-10-31 16:21 | 联众世界(乌云厂商)

    CheckSql 表示很难绕过这个函数。

  7. 2012-10-31 18:16 | _Evil ( 普通白帽子 | Rank:418 漏洞数:59 | 万事无他,唯手熟尔。农民也会编程,别指望天...)

    @联众世界 wooyun一哥帮助你!

  8. 2012-10-31 18:22 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    http://zone.wooyun.org/content/108

  9. 2012-10-31 18:28 | 半世倾尘 ( 路人 | Rank:29 漏洞数:8 | 努力)

    @联众世界 亮了

  10. 2012-11-01 01:09 | 西毒 ( 普通白帽子 | Rank:221 漏洞数:33 | 心存谦卑才能不断超越自我)

    不是全过滤了么?怎么回事?

  11. 2012-11-01 09:58 | 西毒 ( 普通白帽子 | Rank:221 漏洞数:33 | 心存谦卑才能不断超越自我)

    哥哥....我看上面没注入啊,到底是咋回事,求解答

  12. 2012-11-01 12:32 | jsbug ( 普通白帽子 | Rank:117 漏洞数:16 )

    测试了好久.配合filter.inc.php的二次变量覆盖没有处理_RunMagicQuotes.magic_quotes_gpc=off下才能成功吧?

  13. 2012-11-01 15:18 | 园长 ( 普通白帽子 | Rank:134 漏洞数:14 | 你在身边就是缘,缘分写在数据库里面。)

    @西毒 INSERT的时候typeid貌似没有验证,看补丁文件你就知道了。

  14. 2012-11-01 22:16 | Wdot ( 实习白帽子 | Rank:77 漏洞数:12 | it came too later)

    绕过了,其实挺简单,想复杂了。。。

  15. 2012-11-04 02:49 | 鬼哥 ( 普通白帽子 | Rank:136 漏洞数:13 | 鬼哥 !!!!)

    @联众世界 其实很好饶过的。

  16. 2012-11-04 11:10 | 西毒 ( 普通白帽子 | Rank:221 漏洞数:33 | 心存谦卑才能不断超越自我)

    @园长 绕过倒是很简单,问题,他这个条件实在是太苛刻了

  17. 2012-11-05 20:38 | Matt 认证白帽子 ( 普通白帽子 | Rank:523 漏洞数:107 | 承接代码审计 http://codescan.cn/)

    构造的鸟么,内置的防注入Ids能过么。。。

  18. 2012-11-06 16:55 | Wdot ( 实习白帽子 | Rank:77 漏洞数:12 | it came too later)

    @Matt 很容易的,去看看 ` 这个符号

  19. 2012-11-06 17:27 | Matt 认证白帽子 ( 普通白帽子 | Rank:523 漏洞数:107 | 承接代码审计 http://codescan.cn/)

    @Wdot 那dede还有好几处注入呢,,

  20. 2012-11-06 17:30 | Wdot ( 实习白帽子 | Rank:77 漏洞数:12 | it came too later)

    @Matt 悲催的是,拿到密码也解出明文了,找不到后台~

  21. 2012-11-06 17:47 | Matt 认证白帽子 ( 普通白帽子 | Rank:523 漏洞数:107 | 承接代码审计 http://codescan.cn/)

    @Wdot 看错误日志

  22. 2012-12-30 09:52 | 陈再胜 ( 普通白帽子 | Rank:121 漏洞数:13 | 微博收收听~~~●﹏●)

    @Wdot dedecms有个报错爆出后台的方法