[腾讯实例教程] 那些年我们一起学XSS – 6. 换行符复仇记

漏洞标题 [腾讯实例教程] 那些年我们一起学XSS - 6. 换行符复仇记
相关厂商 腾讯
漏洞作者 心伤的瘦子
提交时间 2012-12-14 11:19
公开时间 2013-01-28 11:20
漏洞类型 xss跨站脚本攻击
危害等级
自评Rank 1
漏洞状态 厂商已经确认
Tags标签 xss利用技巧,反射型xss

漏洞详情

1.实际场景是下面这个例子。

http://datalib.games.qq.com/cgi-bin/search?libid=178&FilterAttrAND=3602&FilterValueAND=aaaaaaaaaa

对应的,我们可以看到我们的输入aaaaaaaaa 会在页面的哪些输出点出现呢?

22.jpg

2. 不错,一共有5处,有在HTML标签之间的(教程1),也有在<script>..</script>之间的。但是呢,该过滤的,< , > 过滤掉了, 该过滤的 " ,也过滤掉了。。

23.jpg

3. 也就是说传统的已经不行啦,我们继续看5处的其他地方。呀,竟然还有一大段注释里,也出现了我们的【输出】

24.jpg

4. 嗯,这样一来,是否会想到这样一个用法呢?

//我是注释,我爱洗澡,哦~哦~哦~ [我是输出]

如果可以使用换行符的话。

//我是注释,我爱洗澡,哦~哦~哦~ [我是输出  换行符
alert(1);//我是输出]

这样alert(1); 就会被成功执行。

5. 恩,带着这样一个想法,我们不难构造出以下利用。

http://datalib.games.qq.com/cgi-bin/search?libid=178&FilterAttrAND=3602&FilterValueAND=%0aalert(1);//

看下输出。嘿,果然没过滤。

25.jpg

6. 这样,这一次我们的换行符立功了, 它不是一个符号在战斗!

漏洞证明:

26.jpg

修复方案:

尽量不要在JS的注释里输出内容。还挺危险的。

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

【安全脉搏:分享技术、悦享品质。文章仅代表作者看法,如有不同观点,欢迎添加安全脉搏微信号:SecPulse,进行交流。】

1条评论

评论加载中,请稍等...
  • cdxampp  回复

    好思路,佩服。

昵称*

邮箱*

网址

友情链接

合作伙伴