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

缺陷编号: WooYun-2012-16512

漏洞标题: [腾讯实例教程] 那些年我们一起学XSS - 14. Flash Xss入门 [navigateToURL]

相关厂商: 腾讯

漏洞作者: 心伤的瘦子

提交时间: 2012-12-26 01:38

公开时间: 2013-02-09 01:39

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

危害等级: 低

自评Rank: 1

漏洞状态: 厂商已经确认

Tags标签: 反射型xss flash应用安全

3人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

接下来,我们将讲解Flash Xss。由于乌云及社会各界的白帽子的上报,腾讯目前已经对绝大多数可能存在问题的Flash进行了修复。使得我在寻找真实案例时着实麻烦了不少。但是为了使得本教程足够完善和系统,我还是很艰难的找出了一些可以参考的例子。例子本身危害可能不大,但是希望能够借助例子给新手们描述清楚比较基本的东西。

Flash的actionscript脚本目前网络上存在2种版本,即2.0与3.0,本次教程先以as3.0为例。同时教程还会在如何使用搜索引擎搜索,如何查找关键词及构造利用代码方面进行详细的讲解。

详细说明:

1. 首先,第一步,我们需要找到存在缺陷的FLASH文件。如何找到这类文件呢?最好的办法,当然是GOOGLE搜索。但是其实很多人是不太会用搜索引擎。或者知道怎么用,但是不知道该如何搜索关键词。因而教程的开始,我们来说一说,如何搜索关键词。



2. 基本语句肯定是 site:qq.com filetype:swf



意思是,限定域名为qq.com 文件类型为FLASH文件。



3. 显然这样会搜索出很多FLASH文件,不利于我们后续的漏洞查找,所以我们需要输入某个关键词来进一步缩小范围。这里我列举一些寻找关键词的方式。



3.1 已知存在缺陷的FLASH文件名或参数名,如:swfupload,jwplayer等

3.2 多媒体功能的FLASH文件名,如:upload,player, music, video等

3.3 调用的外部配置或数据文件后缀,如: xml, php 等

3.4 前期经验积累下来的程序员特征参数名用词,如: callback, cb , function 等



4. 结合以上经验,本例使用其中第三条:



我们搜索: site:qq.com filetype:swf inurl:xml



可以找到这个FLASH



http://imgcache.qq.com/liveportal_v1/swf/carousel.swf?v=20101111&dp=http://v.qq.com/doco/pic.xml





5. 如果你对FLASH有一定了解或者你天资聪慧的话,通过以上地址,你或许能猜到这个FLASH会调用http://v.qq.com/doco/pic.xml这个XML文件的数据,为了看看是什么数据,我们可以使用抓包软件【这里我使用的是charles web proxy】来看看。



picture\4_68.jpg





6. 我们看看http://v.qq.com/doco/pic.xml的内容,对应着FLASH来看。



picture\7_69.jpg





7. 这里我们重点关注的是xml里的<link>结点。也就是当我们点击图片时,会跳转到link所指向的地址。



8.接着我们先说下基础知识。要实现上面点击图片,打开链接的功能,在FLASH里通常以以下代码来实现的。



当图片点击时执行 函数A



函数A内容如下:



//as3.0版本
navigateToURL(new URLRequest(link), "_self");

//as2.0版本
getURL(link,"_self");





其中link就是被打开的链接。



9. 但是这里存在一个问题,如果link是 "javascript:alert(1)"



那么就可以执行JS代码了。这里的点击执行代码的效果类似于网页里的



<a href="javascript:alert(1)">点我弹出1</a>



10. 基于以上基础知识,我们可以先来反编译一下腾讯的FLASH文件,看看是不是上面这样的。



这里我用到的反编译软件是 actionscript viewer 2009。



把下载好的FLASH文件,拖到软件里,然后把AS都保存出来,保存为文本文件。



picture\10_71.jpg





如上图,我们可以看到AS代码具有目录结构,这种是AS3的。如果不是这样目录的样子,则是AS2的代码。



由于我们要定位的是使用到 link 的代码。 我们打开保存的as代码,进行搜索。



picture\13_70.jpg





可以看到,当点击图片时,直接将数据里的link作为参数传递到了 URLRequest中。



11. 既然如此,我们把http://v.qq.com/doco/pic.xml 给下载下来,



将xml文件里的 <link> 部分修改一下。



picture\16_72.jpg





12. 上传修改后的pic.xml到我们自己的服务器。



picture\19_73.jpg





13. 这样一来, 腾讯的http://imgcache.qq.com/liveportal_v1/swf/carousel.swf 就会跨域加载我们的 http://itsokla.duapp.com/pic.xml 文件。



14. 既然是跨域加载,有必要说点基础知识。 FLASH跨域请求的流程大致如下:



picture\22_74.jpg





15. 因而,我们要允许来自imgcache.qq.com的FLASH文件,访问我们的xml文件才行。



在我们自己网站的根目录下,放置一个 crossdomain.xml



<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*.qq.com" />
</cross-domain-policy>





16. 最后,看看我们的效果。点击图片时,触发。



picture\25_75.jpg





危害较小,仅供学习。

漏洞证明:

见详细说明

修复方案:

对XML中传入的link url进行正则判断

或者

限制加载第三方网站的XML文件

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:4

确认时间:2012-12-26 10:55

厂商回复:

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

最新状态:

暂无


漏洞评价:

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

漏洞评价(少于3人评价):
登陆后才能进行评分
100%
0%
0%
0%
0%

评论

  1. 2012-12-26 01:43 | 鬼魅羊羔 ( 普通白帽子 | Rank:164 漏洞数:25 | 不许动!我是警察!)
    0

    沙发。。

  2. 2012-12-26 07:58 | txcbg ( 普通白帽子 | Rank:294 漏洞数:39 | 说点什么呢?)
    0

    等这个连载公开

  3. 2012-12-26 08:59 | O.o ( 普通白帽子 | Rank:105 漏洞数:12 | 我2故我在)
    0

    第一个快公开了=。=

  4. 2012-12-26 09:15 | momo ( 普通白帽子 | Rank:43 漏洞数:11 )
    0

    广告位出租。

  5. 2012-12-26 09:17 | se55i0n ( 普通白帽子 | Rank:1156 漏洞数:129 | 我是一名白帽子,简称小白!)
    0

    @心伤的瘦子 老湿呀,支持WB转帐提前看你发的全套教程不???

  6. 2012-12-26 09:52 | 鬼魅羊羔 ( 普通白帽子 | Rank:164 漏洞数:25 | 不许动!我是警察!)
    0

    楼上的去死,欺负我们没乌币,我连XSS平台都不舍的买。。

  7. 2012-12-26 09:53 | shack2 ( 普通白帽子 | Rank:303 漏洞数:47 | Name:shack2 QQ:1341413415 一个热爱编程(J...)
    0

    胖子变瘦子,不知道瘦子又变啥……

  8. 2012-12-26 09:58 | se55i0n ( 普通白帽子 | Rank:1156 漏洞数:129 | 我是一名白帽子,简称小白!)
    0

    @鬼魅羊羔 我买了,好奇害死猫呀~~~

  9. 2012-12-26 10:18 | 鬼魅羊羔 ( 普通白帽子 | Rank:164 漏洞数:25 | 不许动!我是警察!)
    0

    @shack2 心伤的胖子、心伤的瘦子,,,下次来个心伤的屌丝。。

  10. 2012-12-26 10:22 | px1624 ( 普通白帽子 | Rank:438 漏洞数:57 | 电脑业余爱好者,菜鸟一个,是来交流学习的...)
    0

    前10.

  11. 2012-12-26 10:50 | 楼上是马甲 ( 实习白帽子 | Rank:0 漏洞数:1 | -__-)
    0

    我想采访下lake2现在的心情

  12. 2012-12-26 10:52 | 鬼魅羊羔 ( 普通白帽子 | Rank:164 漏洞数:25 | 不许动!我是警察!)
    0

    @楼上是马甲 心情一定无比郁闷~~PKAV已经在腾讯火了。。每次一打电话,肯定会问,“你是不是PKAV的”?

  13. 2012-12-26 10:53 | px1624 ( 普通白帽子 | Rank:438 漏洞数:57 | 电脑业余爱好者,菜鸟一个,是来交流学习的...)
    0

    @鬼魅羊羔 。。。直接去加入pkav吧。。这样你就可以骄傲的说,“我是的”

  14. 2012-12-26 10:56 | 鬼魅羊羔 ( 普通白帽子 | Rank:164 漏洞数:25 | 不许动!我是警察!)
    0

    @px1624 人家不要。。我到是想进呢。。

  15. 2012-12-26 15:19 | only_guest (核心白帽子 | Rank:737 漏洞数:71 | PKAV技术宅社区-专心做技术.)
    0

    @鬼魅羊羔 哦?我有说过不要么?亲.

  16. 2012-12-26 15:30 | 鬼魅羊羔 ( 普通白帽子 | Rank:164 漏洞数:25 | 不许动!我是警察!)
    0

    @only_guest 可……可……可……你也……没说……过……要……啊~~~~~~

  17. 2012-12-26 15:31 | 鬼魅羊羔 ( 普通白帽子 | Rank:164 漏洞数:25 | 不许动!我是警察!)
    0

    @only_guest 那我是不是可以理解成,我可以跟你们一起看AV了?

  18. 2012-12-26 16:30 | only_guest (核心白帽子 | Rank:737 漏洞数:71 | PKAV技术宅社区-专心做技术.)
    0

    @鬼魅羊羔 先把你的种子都贡献出来!

  19. 2012-12-26 16:33 | 鬼魅羊羔 ( 普通白帽子 | Rank:164 漏洞数:25 | 不许动!我是警察!)
    0

    @only_guest 。。我只有几个G的国产AV,各种学校、各种门、。。

  20. 2012-12-26 17:10 | only_guest (核心白帽子 | Rank:737 漏洞数:71 | PKAV技术宅社区-专心做技术.)
    0

    @鬼魅羊羔 加入PKAV.然后贡献出来.我们帮你集中销毁!

  21. 2012-12-26 17:28 | 鬼魅羊羔 ( 普通白帽子 | Rank:164 漏洞数:25 | 不许动!我是警察!)
    0

    @only_guest 喳!

  22. 2012-12-30 16:44 | 帅气凌云 ( 普通白帽子 | Rank:263 漏洞数:43 | 求礼物,求服装,求鞋子,求出名,求兼职.....)
    0

    @only_guest 听说有片就可以加入一起观摩了?那偶要为你们贡献偶硬盘里的片片~~

  23. 2013-01-25 14:59 | 假装纯情 ( 实习白帽子 | Rank:6 漏洞数:1 | 不折腾会死星人~)
    0

    做个记号~

  24. 2013-04-13 15:29 | AntBean ( 实习白帽子 | Rank:6 漏洞数:2 | 01d day)
    0

    太给力了!比书本详细多了啊!!ORZ