漏洞概要
关注数(24)
关注此漏洞
漏洞标题:关于JiaThis Flash XSS分析
提交时间:2015-03-25 22:20
修复时间:2015-05-10 12:18
公开时间:2015-05-10 12:18
漏洞类型:xss跨站脚本攻击
危害等级:中
自评Rank:8
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2015-03-25: 细节已通知厂商并且等待厂商处理中
2015-03-26: 厂商已经确认,细节仅向厂商公开
2015-04-05: 细节向核心白帽子及相关领域专家公开
2015-04-15: 细节向普通白帽子公开
2015-04-25: 细节向实习白帽子公开
2015-05-10: 细节向公众公开
简要描述:
先声明,这个漏洞很大一部分是360官微里提到又删掉了的,这里以分析为主。
当然也有我自己发现的一个小的他们没提到的问题。
详细说明:
http://www.jiathis.com/code/swf/m.swf 反编译得到如下代码:
明显里面有两个漏洞。
一、ExternalInterface.call("_gnayTrack.ready", paramObj);
paramObj是root.loaderInfo.parameters,将paramObj作为ExternalInterface.call方法的第二个参数,第二个参数的话我们可以用\"的方式逃逸出引号范围,执行javascript代码。
有人问了,root.loaderInfo.parameters是个对象,怎么传入ExternalInterface.call?ExternalInterface.call的第二个参数应该是一个字符串,但传入对象也是可以的,实际最后执行的时候应该是类似 _gnayTrack.ready({"a": "xxxxx"})
所以,我们现在不仅要闭合双引号",还要闭合一个大括号}和一个小括号),所以最后的payload比大家以前见到的多了}):
二、FSO造成XSS Rootkit
回到刚才说的FSO,由于FSO造成的漏洞乌云上也不少了,比如 http://wooyun.org/bugs/wooyun-2014-065197 、 WooYun: 一个flash的0day导致的淘宝网存储xss(可形成永久后门) 等。
我们看到swf源码中,确实是调用了FSO对象。我们找到对象保存在我们电脑上的文件C:\Users\phithon\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\DR6LLMCM\www.jiathis.com\code\swf\m.swf\mao.sol
可以看到保存在FSO的内容实际上就是jid=xxxx,我们在控制台直接调用swf对象获得jid的值也验证了这一点:
这就好说了。我们将“脏数据”作为jia的值存入FSO,就能留下一个永久后门。
简单构造一个POC:
我将之保存在 http://mhz.pw/game/jiathis/jiathis.html,当访问了这个页面以后,再访问使用了jiathis的网站,即可在该站域下触发XSS,形成一个永久的XSS Rootkit:
漏洞证明:
修复方案:
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:18
确认时间:2015-03-26 12:16
厂商回复:
已经紧急修复该漏洞,谢谢大家。
最新状态:
暂无