关于JiaThis Flash XSS分析

漏洞概要

缺陷编号:WooYun-2015-0103759

漏洞标题:关于JiaThis Flash XSS分析

相关厂商:JiaThis

漏洞作者:story

提交时间:2015-03-25 22:20

公开时间: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-2612:16

厂商回复:

已经紧急修复该漏洞,谢谢大家。

最新状态:

暂无

评价

  1. 2010-01-01 00:00 孤独雪狼 白帽子 | Rank:240 漏洞数:38)

    赞。。。

  2. 2010-01-01 00:00 泳少 白帽子 | Rank:158 漏洞数:20)

    居然还没修复完整=。=