[腾讯实例教程] 那些年我们一起学XSS – 2. 输出在<script></script>之间的情况

漏洞概要

缺陷编号:WooYun-2012-015959

漏洞标题:[腾讯实例教程] 那些年我们一起学XSS - 2. 输出在<script></script>之间的情况

相关厂商:腾讯

漏洞作者:心伤的瘦子

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

公开时间:2013-01-27 14:50

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

危害等级:低

自评Rank:1

漏洞状态:厂商已经确认

Tags标签:

漏洞详情

披露状态:

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

简要描述:

接着上面一个教程,我们继续。这个例子属于第一例的特殊情况,当然也有特殊解法。也属于非常常见的一种情况。

详细说明:

1. 我们找到这么一个点,也是输入和输出都未过滤的一个点。相比教程第一例,其特殊之处在于,是输出在了 <script>[输出]</script>之间。

如下图:callback参数未做过滤。 在【查看源代码】下,我们可以看到。

缺陷网页源代码:

2. 碰到这种情况,我们一般有以下解法。2.1 首先判断,是否过滤了 < , > , / 等符号,2.2 如果都没有过滤,恭喜你,一般可以直接XSS了。代码如下:http://activity.soso.com/common/setParentsInfo.php?callback=aaaaaaaaa</script><script>alert(1)</script>原理入下图:

构造callback参数后的源代码

2.3 如果过滤了 <, >,那么就无法使用上面的办法了。我们接着看 33. script代码里的构造。友情提示:这里可能需要一点点 javascript 的知识才行哦~~我们可以如下构造:

可以看到,源代码是下面的样子。

也就是说,我们插入的内容,使得这一段javascript依然【语法正确】,能够【正确执行】,并且能够执行【我们所插入的JS代码】,这样我们的目的就达到了。构造后的源代码如下:

4. 这种输出在JS代码里的情况十分常见,但是呢?不幸的是,像这样没过滤的情况,却不是很常见。例如:var a="[输出]"; // 通常程序员会把 " 过滤掉, 这样的话,一般来说,我们就很难构造。但是,这并不是说,就一定是不能利用,后面我们会拿腾讯一些【比较有意思】的例子,来进一步说到 这个【输出在js里】的情况的~

漏洞证明:

见详情。

修复方案:

这类XSS的模型通常是:<script>...[输出]...</script><style>...[输出]...</script>解决方案:1. 过滤 </xxx> 组合2. 针对输出在不同的场景,进行合适的过滤。

漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2012-12-13 16:03

厂商回复:

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

最新状态:

暂无

评价

  1. 2010-01-01 00:00 xsser 白帽子 | Rank:152 漏洞数:17)

    腾讯是要齐吧

  2. 2010-01-01 00:00 鬼魅羊羔 白帽子 | Rank:274 漏洞数:36)

    靠!这也太假了~~心伤的胖子—心伤的瘦子,这货减肥了。。

  3. 2010-01-01 00:00 momo 白帽子 | Rank:80 漏洞数:16)

    支持套装教程,到时好给乌云(@xsser)[email protected] 你说呢?

  4. 2010-01-01 00:00 Rookie 白帽子 | Rank:241 漏洞数:48)

    减肥成功了 估计要连载 不管你们信不信 反正我信了

  5. 2010-01-01 00:00 鬼魅羊羔 白帽子 | Rank:274 漏洞数:36)

    @Rookie 看这架势指定要连载,这厮肯定在计划着情人节礼物。。(TX打包送妹纸)

  6. 2010-01-01 00:00 dyun 白帽子 | Rank:75 漏洞数:11)

    @@~~~~

  7. 2010-01-01 00:00 xsser 白帽子 | Rank:152 漏洞数:17)

    这瘦子要拿这个月的大奖啊?

  8. 2010-01-01 00:00 冷静 白帽子 | Rank:3 漏洞数:2)

    @xsser 洞主叫我问奥迪还是ipad

  9. 2010-01-01 00:00 momo 白帽子 | Rank:80 漏洞数:16)

    @冷静 是爱帕的or爱疯or百度U盘

  10. 2010-01-01 00:00 小石头 白帽子 | Rank:8 漏洞数:2)

    我擦 这个系列牛逼 出书提前预定啊

  11. 2010-01-01 00:00 waldens 白帽子 | Rank:0 漏洞数:0)

    太牛了!!!

  12. 2010-01-01 00:00 j2ck3r 白帽子 | Rank:240 漏洞数:27)

    如果过滤<>怎么绕过

  13. 2010-01-01 00:00 px1624 白帽子 | Rank:963 漏洞数:126)

    貌似有个标签写错了,可以让管理给改下。

    修复方案:
    这类XSS的模型通常是:

    <script>...[输出]...</script>

    <style>...[输出]...</script>

  14. 2010-01-01 00:00 llkoio 白帽子 | Rank:15 漏洞数:1)

    好文。

  15. 2010-01-01 00:00 hope 白帽子 | Rank:0 漏洞数:0)

    值得学习!!!

  16. 2010-01-01 00:00 Azox佐熙 白帽子 | Rank:1 漏洞数:1)

    [email protected]

  17. 2010-01-01 00:00 Disaster 白帽子 | Rank:0 漏洞数:0)

    只恨自己现在才看到这么精彩的系列文章!

  18. 2010-01-01 00:00 大笨蛋才会放弃 白帽子 | Rank:0 漏洞数:0)

    来玩了

  19. 2010-01-01 00:00 Mark0smith 白帽子 | Rank:20 漏洞数:2)

    可以直接设置callback=alert,然后就变成http://xss.pkav.net/xss/ext/2.php?callback=alert,也可以弹