新浪微博IPAD客户端XSS(file域)+构造Worm

漏洞概要

缺陷编号:WooYun-2015-098586

漏洞标题:新浪微博IPAD客户端XSS(file域)+构造Worm

相关厂商:新浪

漏洞作者:izy

提交时间:2015-02-27 16:37

公开时间:2015-04-13 16:58

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

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

Tags标签:

漏洞详情

披露状态:

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

简要描述:

这个XSS是在本地域(file://)触发的,这就比较有意思了,@phithon告诉因为在safari下,本地域是可以跨任意域的,[email protected].一步步构造worm!

详细说明:

当我们通过第三方APP“快手”,将信息分享到微博时,信息内容就会造成一个XSS。当用户在ipad版微博客户端上查看这条微博的时候,即触发。(1)首先我下载了快手GIF,拍一段GIF分享,分享位置填入我的XSS POC:

我的POC只是一个弹窗的alert,在ipad上打开微博APP,点击查看我刚发的分享,即可触发:

我们看到,这个XSS是在本地域(file://)[email protected],本地域是可以跨任意域的。比如跨域请求乌云的首页:

跨域是什么概念,比如我在这里插入一个XSS,能直接打到你乌云的cookie。当然,只有在你登录了乌云的情况下。这就造成了一个很大的问题,我试过即使我在外面的safari浏览器中登录了某个网站,但在APP里也获取不到这个网站的COOKIE。二者不属于一个APP,所以数据是隔离的。实际上,谁会在微博的客户端中去登录乌云呢?那么,在微博的客户端中,我们登录了哪个网站?当然是weibo.com了,我们用<iframe src=”http://weibo.com”>在客户端中打开微博首页,就能看到我们

我再试试以下的payload:

却发现得到的location.href却是about:blank

我们注入的javascript并没有到weibo.com的域下,所以我们不能直接控制weibo.com的内容。但经过抓包发现,虽然不能直接插入javascript,但我们的数据包中却带有自己的cookie。新浪的主要cookie是加了HTTPONLY的,偷cookie没有任何意义,但微博作为国内最大的社交媒体之一,一个蠕虫绝对比偷cookie的威力大的多。我们来构造蠕虫。对于一个微博,蠕虫最好的方式就是进行转发了,我们抓到了电脑上转发的包:

如上图,抓包之后进行fuzz,发现在HTTP头中,Referer肯定是不能少的(新浪是用Referer来防御CSRF漏洞),X-Requested-With: XMLHttpRequest和Content-Type: application/x-www-form-urlencoded也必须有。因为我们可以跨域,所以我们通过ajax来发送POST包,将Referer、X-Requested-With、Content-Type加入header。在chrome下,我们是不能通过ajax修改Referer的,[email protected]团队兔子君编写的love.js(https://quininer.github.io/tests/love.js)来辅助编写payload:

但是将这个payload传上去之后却发现,返回的包确实要求我登录的:

明明应该有weibo.com的cookie的呀?后来发现,原来是因为我长时间(这个测试是第二天做的)不操作,所以cookie已经过期了。只要我们再用iframe加载一次weibo.com,即可重新获得cookie。最终payload:

触发payload发现返回结果变了,已经成功转发微博(实战中将这个弹窗去掉,并可以将iframe的width和height设置为0,让用户察觉不到自己受到危害):

查看自己的主页已经看到转发了:

这样就形成了一个新浪微博的蠕虫。只要查看了我这个微博的用户,即会自动转发这条微博。我们甚至可以把“转发微[email protected],这样传播下去,只要用了ipad版微博客户端的用户都会触发XSS,再次转发,形成一个一传十十传百的效果。这篇文章由izy和phithon完成,[email protected],让我们更多接触了客户端XSS和客户端蠕虫。

漏洞证明:

修复方案:

过滤.

漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2015-03-0214:03

厂商回复:

感谢关注新浪安全,漏洞修复中。

最新状态:

暂无

评价

  1. 2010-01-01 00:00 phith0n 白帽子 | Rank:644 漏洞数:62)

    顶学弟一个!~

  2. 2010-01-01 00:00 Chu 白帽子 | Rank:47 漏洞数:7)

    特前来顶帖

  3. 2010-01-01 00:00 izy 白帽子 | Rank:114 漏洞数:12)

    @Chu 233333

  4. 2010-01-01 00:00 scanf 白帽子 | Rank:1161 漏洞数:100)

    不错

  5. 2010-01-01 00:00 qhwlpg 白帽子 | Rank:141 漏洞数:13)

    @phith0n @izy学弟。。。求当学弟

  6. 2010-01-01 00:00 屠龙宝刀点击就送 白帽子 | Rank:0 漏洞数:0)

    思路很不错