当前位置:WooYun >> 漏洞信息

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

缺陷编号:wooyun-2015-0141454

漏洞标题:音悦台主站XSS(进击吧XSS之Rootkit的奇袭)

相关厂商:音悦台

漏洞作者: qwerty

提交时间:2015-09-16 09:13

修复时间:2015-10-31 10:24

公开时间:2015-10-31 10:24

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-09-16: 细节已通知厂商并且等待厂商处理中
2015-09-16: 厂商已经确认,细节仅向厂商公开
2015-09-26: 细节向核心白帽子及相关领域专家公开
2015-10-06: 细节向普通白帽子公开
2015-10-16: 细节向实习白帽子公开
2015-10-31: 细节向公众公开

简要描述:

很久没提交漏洞了。这几天又翻了翻乌云。
跨站漏洞,大范围影响音悦台主站。

详细说明:

打开音悦台主站,UI做的不错,挺清新的。
Chrome看了一下请求包,页面展示过程中加载了3个Flash

QQ20150916-3@2x.png


第一个是阿里云的一个Flash文件,之前就是这个Flash被报的XSS Rootkit漏洞,现在已经做了比较好的过滤。
第二个Flash也同样的对很多特殊字符做了过滤。
第三个Flash是音悦台自己的一个Flash,会记录mv播放列表、播放器状态等等一系列数据。
注意到之前这个Flash同样存在XSS Rootkit漏洞。我们来看看现在是如何修复的,
Flash中添加的JavascriptAPI:

QQ20150916-2@2x.png


这些API中getData对应的具体ActionScript代码:

QQ20150916-1@2x.png


这个函数接口返回值是一个json数据,并没有对返回值做校验、过滤等操作。
那修复漏洞时,做了哪些整改呢
可以看到Flash的Security.allowDomain 已经做了限制:

QQ20150915-4@2x.png


这样的话就不能直接在第三方页面上对这个Flash的lso进行操作了。
但是仅仅是这样做限制,并不能解决Rootkit的问题,也就是说在上图任一域下,如果存在可控来操作Flash lso内容的漏洞,如:XSS,就可以植入Rootkit。
所以为了利用这个Rootkit的漏洞,就得在这些域名下再找一个XSS漏洞。
UGC内容比较多的i.yinyuetai.com,却不在上述域名范围内,比较蛋疼。
简单看了下富文本编辑器,一般的过滤也都做了。去绕的话,估计也比较花时间。
蛋疼之余又回来看了下 flashlocalstorage.swf 这个Flash,于是看到了另外一个容易出现问题Flash JS接口

QQ20150916-4@2x.png


跟一下参数this._provider.config.readycallback,果然是可控的:

QQ20150916-5@2x.png


这样就完美了,这个域名也是范围内的
http://s.yytcdn.com/swf/common/flashlocalstorage.swf?t=20150227&readycallback=alert(1)

QQ20150916-6@2x.png


后面就很简单了。调一下POC,短网址搞一个。

http://s.yytcdn.com/swf/common/flashlocalstorage.swf?t=20150227&readycallback=eval(String.fromCharCode(100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,115,66,121,84,97,103,78,97,109,101,40,34,101,109,98,101,100,34,41,91,48,93,46,115,101,116,68,97,116,97,40,39,112,108,97,121,108,105,115,116,68,97,116,97,39,44,39,116,101,115,116,92,92,34,125,41,59,97,108,101,114,116,40,47,104,97,99,107,101,100,32,98,121,32,113,119,101,114,116,121,47,41,59,47,47,123,92,92,34,39,44,39,99,97,108,108,98,97,99,107,39,41))


当然也可以自己搞个隐蔽点的页面,iframe引用这个poc。利用方式就可以跟Flash XSS Rootkit一样了。
像这样

QQ20150916-7@2x.png


然后这样

QQ20150916-8@2x.png


POC代码换成利用代码,就可以 大范围、持久、Rootkit用户啦,Cookie也没httponly,任意利用啊
赶紧修复吧~

漏洞证明:

见详细说明

修复方案:

过滤过滤
ExternalInterface.addCallback
ExternalInterface.call

版权声明:转载请注明来源 qwerty@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2015-09-16 10:23

厂商回复:

谢谢关注音悦台的安全问题,稍后发送礼物。

最新状态:

暂无