这个是路人甲发的漏洞 WooYun: 乐视网首页某处xss可导致rootkit
从他通过的漏洞代码来分析,原来的flash验证allowDomain是通过的location.href
所以被这样的链接绕过了:http://appmaker.sinaapp.com/poc/com.letv.www/1.htm
问题falsh:http://player.letvcdn.com/p/201501/30/11/StorageLetvPlayer.swf
原漏洞分析的比较简单,我在这儿做一个比较详细发分析
反编译了flash关键代码如下:
通过传入的domain设置allowDomain
但是进行了正则验证RegExp("\\.letv\\.com$")和RegExp("\\.letv\\.cn$")都只限制了以letv.com和letv.cn结尾,于是我们可以通过设置:domain=127.0.0.1/.letv.com
轻松绕过过滤,由于/后面相当于注释,所以设置后的allowDomain就为127.0.0.1
让后继续看下面的代码:
这个是设置sharedObject的方法。
于是我们到网页上去搜索.getItem看在哪些地方有调用,最后跟踪发现
每次访问首页都会执行这个方法,其中LocalStore.read("lc");就是调用flash的方法
但是必须要tj_lc的值为空才会调用LocalStore.read("lc");路人甲的方法是找了个letv的跨站修改tj_lc的值为空,其实根本不需要,因为每次打开浏览器第一次访问www.letv.com的时候tj_lc都是为空的,解决了调用的方法,那下面我们就来设置我们的跨站代码吧!
这样我们每次打开浏览器访问letv.com都会触发了,达到了长期劫持的目的