漏洞概要
关注数(24)
关注此漏洞
漏洞标题:乐视网首页某处xss可导致rootkit(绕过)
漏洞作者: 香草
提交时间:2015-03-12 11:49
修复时间:2015-04-26 11:50
公开时间:2015-04-26 11:50
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:15
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2015-03-12: 细节已通知厂商并且等待厂商处理中
2015-03-12: 厂商已经确认,细节仅向厂商公开
2015-03-22: 细节向核心白帽子及相关领域专家公开
2015-04-01: 细节向普通白帽子公开
2015-04-11: 细节向实习白帽子公开
2015-04-26: 细节向公众公开
简要描述:
看到路人甲发了类似的,还被雷劈了,所以来了兴致,打开研究了一番,果然修复了,但是很快被绕过了,另外也求个雷劈
详细说明:
这个是路人甲发的漏洞 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都会触发了,达到了长期劫持的目的
漏洞证明:
访问 http://xiangchao.sinaapp.com/flash.htm后访问
http://www.letv.com
修复方案:
1、flash验证可信域名正则修改
2、addItem方法过滤特殊字符
版权声明:转载请注明来源 香草@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:12
确认时间:2015-03-12 12:27
厂商回复:
非常感谢关注乐视安全,再次联系开发进行修复
最新状态:
暂无