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

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

缺陷编号: WooYun-2014-63441

漏洞标题: DedeCMS最新版前台SQL注射

相关厂商: Dedecms

漏洞作者: blue认证白帽子

提交时间: 2014-06-04 01:54

公开时间: 2014-09-02 01:56

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

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

Tags标签: php源码审核 sql注射漏洞利用技巧

15人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

又见SQL注射,一个小问题引发的多处血案...

详细说明:

DedeCMS在注册时对用户名、电子邮箱等限制的很死,唯独对用户笔名没做限制,可填写单引号等,由此导致再次使用笔名入库时二次注入



1. /member/reg_new.php 约194行

code 区域
$inQuery = "INSERT INTO `#@__member` (`mtype` ,`userid` ,`pwd` ,`uname` ,`sex` ,`rank` ,`money` ,`email` ,`scores` ,
`matt`, `spacesta` ,`face`,`safequestion`,`safeanswer` ,`jointime` ,`joinip` ,`logintime` ,`loginip` )
VALUES ('$mtype','$userid','$pwd','$uname','$sex','10','$dfmoney','$email','$dfscores',
'0','$spaceSta','','$safequestion','$safeanswer','$jointime','$joinip','$logintime','$loginip'); "; //在此之前没有对$uname做判断,可注入单引号
if($dsql->ExecuteNoneQuery($inQuery))





2. 全局搜索M_UserName,username,getUserName()等,找到将笔名再次入库的点,如/include/memberlogin.class.php 约567行

code 区域
function RecordFeeds($type, $title, $note, $aid)
{
global $dsql,$cfg_mb_feedcheck;
//确定是否需要记录
if (in_array($type,array('add','addsoft','feedback','addfriends','stow'))){
$ntime = time();
$title = htmlspecialchars(cn_substrR($title,255));
if(in_array($type,array('add','addsoft','feedback','stow')))
{
$rcdtype = array('add'=>' 成功发布了', 'addsoft'=>' 成功发布了软件',
'feedback'=>' 评论了文章','stow'=>' 收藏了');
//内容发布处理
$arcrul = " <a href='/plus/view.php?aid=".$aid."'>".$title."</a>";
$title = htmlspecialchars($rcdtype[$type].$arcrul, ENT_QUOTES);
} else if ($type == 'addfriends')
{
//添加好友处理
$arcrul = " <a href='/member/index.php?uid=".$aid."'>".$aid."</a>";
$title = htmlspecialchars(' 与'. $arcrul."成为好友", ENT_QUOTES);
}
$note = Html2Text($note);
$aid = (isset($aid) && is_numeric($aid) ? $aid : 0);
$ischeck = ($cfg_mb_feedcheck == 'Y')? 0 : 1;
$query = "INSERT INTO `#@__member_feed` (`mid`, `userid`, `uname`, `type`, `aid`, `dtime`,`title`, `note`, `ischeck`)
Values('$this->M_ID', '$this->M_LoginID', '$this->M_UserName', '$type', '$aid', '$ntime', '$title', '$note', '$ischeck'); "; //插入用户动态,这里是重点,直接使用了$this->M_UserName
$rs = $dsql->ExecuteNoneQuery($query);
return $rs;
} else {
return FALSE;
}



3. 通过一些可记录feed的操作,如发表文章,加好友等,即可触发此注入

漏洞证明:

1. 注入新用户,插入sql语句(根据自己爱好写吧,最好结尾加\,然后找到可控的临近字段)

QQ20140604-3@2x.png



2. 加个好友,触发用户动态记录

QQ20140604-1@2x.png



3. 到个人中心看看吧~

QQ20140604-2@2x.png

修复方案:

在注册时就限制好笔名的格式最简单

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2014-06-06 19:42

厂商回复:

已修复,感谢提交

最新状态:

暂无


漏洞评价:

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

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2014-06-04 01:56 | phith0n 认证白帽子 ( 普通白帽子 | Rank:804 漏洞数:125 | 一个想当文人的黑客~)
    2

    沙发

  2. 2014-06-04 01:59 | blue 认证白帽子 ( 普通白帽子 | Rank:779 漏洞数:70 | 我心中有猛虎,细嗅蔷薇。)
    1

    @phith0n 好巧,早点睡啊~

  3. 2014-06-04 03:49 | 傻傻的xj ( 路人 | Rank:17 漏洞数:3 | 专注被泡33年.)
    1

    专注 dede 18年...

  4. 2014-06-04 06:09 | MuZhU0 ( 路人 | Rank:6 漏洞数:4 )
    1

    隔一段时间,一个DEDECMS的SQL注射。可悲的织梦。

  5. 2014-06-04 06:24 | 马丁 ( 路人 | Rank:28 漏洞数:24 | 大爷~给口饭吧。)
    2

    前排 知足了 这么近 一定可以沾光

  6. 2014-06-04 08:42 | 园长 ( 普通白帽子 | Rank:134 漏洞数:14 | 你在身边就是缘,缘分写在数据库里面。)
    1

    哥,我们今天去啊。

  7. 2014-06-04 09:02 | 乐乐、 ( 普通白帽子 | Rank:868 漏洞数:189 )
    0

    织梦如今这么可怜....

  8. 2014-06-04 09:04 | 大白菜 ( 实习白帽子 | Rank:52 漏洞数:19 )
    0

    我来围观了。。。

  9. 2014-06-04 09:04 | 泳少 ( 普通白帽子 | Rank:248 漏洞数:82 | ★ 梦想这条路踏上了,跪着也要...)
    0

    前排mark

  10. 2014-06-04 09:09 | 茜茜公主 ( 普通白帽子 | Rank:2407 漏洞数:413 | 家里二宝出生,这几个月忙着把屎把尿...忒...)
    0

    我也要沾光

  11. 2014-06-04 09:11 | 围剿 ( 路人 | Rank:17 漏洞数:5 | Evil decimal)
    0

    又是dede

  12. 2014-06-04 09:31 | xsser 认证白帽子 ( 普通白帽子 | Rank:297 漏洞数:22 | 当我又回首一切,这个世界会好吗?)
    0

    牛逼

  13. 2014-06-04 09:43 | 紫衣大侠 ( 普通白帽子 | Rank:296 漏洞数:30 | 打杂的~~)
    0

    流弊

  14. 2014-06-04 09:49 | blue 认证白帽子 ( 普通白帽子 | Rank:779 漏洞数:70 | 我心中有猛虎,细嗅蔷薇。)
    0

    @园长 so good,好好玩,安全第一

  15. 2014-06-04 09:50 | Chora 认证白帽子 ( 普通白帽子 | Rank:377 漏洞数:25 | 生存、生活、生命。)
    0

    亲你又调皮了

  16. 2014-06-04 09:51 | cold ( 路人 | Rank:2 漏洞数:2 | 生命不息,折腾不止。)
    0

    流弊,来沾光

  17. 2014-06-04 10:01 | 秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)
    0

    NB!

  18. 2014-06-04 10:29 | 落月 ( 路人 | Rank:0 漏洞数:2 | 落月,关注网络安全;关注黑帽劫持;)
    0

    又是dede ,织梦怎么这么多洞

  19. 2014-06-04 11:04 | wefgod ( 核心白帽子 | Rank:1825 漏洞数:183 | 力不从心)
    0

    这货成就了那么多土豪啊

  20. 2014-06-04 11:07 | blue 认证白帽子 ( 普通白帽子 | Rank:779 漏洞数:70 | 我心中有猛虎,细嗅蔷薇。)
    0

    @wefgod 楼上才是真土豪~

  21. 2014-06-04 11:33 | 邪少 ( 实习白帽子 | Rank:94 漏洞数:15 | 百里长苏)
    0

    这次有亮点吗?

  22. 2014-06-04 11:44 | menmen519 ( 普通白帽子 | Rank:914 漏洞数:161 | http://menmen519.blog.sohu.com/)
    0

    织梦这个我倒是发现有sql注入,但是它有一个防护机制,好多函数或者写法被屏蔽了,不知道楼主是已经发现了绕过的方法,请赐教!!!

  23. 2014-06-04 12:43 | wefgod ( 核心白帽子 | Rank:1825 漏洞数:183 | 力不从心)
    0

    @blue 酱油路人各种打

  24. 2014-06-04 12:46 | blue 认证白帽子 ( 普通白帽子 | Rank:779 漏洞数:70 | 我心中有猛虎,细嗅蔷薇。)
    0

    @menmen519 绕过方法公开了,呃,drops上就有 http://drops.wooyun.org/papers/353

  25. 2014-06-04 13:34 | c0lc ( 路人 | Rank:4 漏洞数:2 )
    0

    我要膜拜这个亮点

  26. 2014-06-04 13:44 | menmen519 ( 普通白帽子 | Rank:914 漏洞数:161 | http://menmen519.blog.sohu.com/)
    0

    感谢大神,织梦sql注入漏洞已提交,等待中

  27. 2014-06-04 13:53 | blue 认证白帽子 ( 普通白帽子 | Rank:779 漏洞数:70 | 我心中有猛虎,细嗅蔷薇。)
    0

    @menmen519 厉害

  28. 2014-06-04 13:55 | phith0n 认证白帽子 ( 普通白帽子 | Rank:804 漏洞数:125 | 一个想当文人的黑客~)
    0

    @blue @menmen519 全是大神,根本挡不住

  29. 2014-06-05 23:37 | 大白菜 ( 实习白帽子 | Rank:52 漏洞数:19 )
    0

    。。。。你的神器真是牛爆了~!!

  30. 2014-09-02 10:33 | _Evil ( 普通白帽子 | Rank:431 漏洞数:61 | 万事无他,唯手熟尔。农民也会编程,别指望天...)
    0

    牛逼

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