Mozilla Firefox 3.6 window.location对象非授权数据访问漏洞
2010-03-25 08:17
405 查看
影响版本:
Mozilla Firefox 3.6
漏洞描述:
CVE ID: CVE-2010-0170 Firefox是一款流行的开源WEB浏览器。 由于开发了新的机制来强制窗口与帧之间的同源策略,Firefox 3.6的浏览器引擎将window.location对象更改为正常的可覆盖
JavaScript对象。但一些插件也使用这个对象判断页面来源以实施访问限制,因此恶意网页可以通过覆盖这个对象欺骗插件允许
到其他站点或本地文件系统上数据的访问。
参考
http://www.mozilla.org/security/announce/2010/mfsa2010-10.html
https://bugzilla.mozilla.org/show_bug.cgi?format=multiple&id=541530
测试方法:
<!DOCTYPE html> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=541530 --> <head> <title>Test for Bug 411103</title> </head> <body> <pre id="test"> <script class="testbody" type="text/javascript"> var passed = true; function ok(test, message) { if (!test) { alert("FAIL: " + message); passed = false; } } var orig = window; window = {}; var origLocation = location; ok(window === orig, "can't override window"); ok(window.location === location, "properties are properly aliased"); ok(document.location === location, "properties are properly aliased"); try { __defineGetter__('window', function() {}); ok(false, "should not be able to defineGetter(window)"); } catch (e) { } try { window.__defineGetter__('location', function(){}); ok(false, "should not be able to defineGetter(window.location)"); } catch (e) { } try { window.location.__defineGetter__('href', function(){}); ok(false, "shouldn't be able to override location.href"); } catch (e) { } try { window.location.__proto__.__defineGetter__('href', function(){}); ok(false, "shouldn't be able to use the prototype"); } catch (e) { } try { window.location.__defineSetter__('href', function(){}); ok(false, "overrode a setter for location.href?"); } catch (e) { } try { document.__defineGetter__('location', function(){}); ok(false, "shouldn't be able to override document.location"); } catch (e) { } location.watch('href', function() { return "javascript:ok(false, 'shouldn't be able to use watchpoints to mess things up')" }); ok(window === orig, "can't override window"); ok(window.location === origLocation, "properties are properly aliased"); ok(document.location === origLocation, "properties are properly aliased"); location.href = 'javascript:ok(true, "was able to set location.href through a watchpoint")'; alert(passed ? "All tests passed" : "FAILED!"); </script> </pre> </body> </html>
相关文章推荐
- oracle授权另外一个用户访问自己创建的数据对象
- oracle授权另外一个用户访问自己创建的数据对象
- oracle授权另外一个用户访问自己创建的数据对象
- 南方数据管理员添加未授权访问漏洞
- oracle授权另外一个用户访问自己创建的数据对象
- Java数据访问对象模式
- Oracle创建表空间、创建用户、授权、授权对象的访问以及查看权限集合
- 设计模式知识连载(39)---数据访问对象模式---MongoDB
- [整理]创建JavaScript对象用闭包的方式保证内部数据不能外部所访问
- Mozilla Firefox 3.6 WOFF解码器整数溢出漏洞
- spring mvc 注解访问控制器以及接收form数据的方式,包括直接接收日期类型及对象的方法
- 分析、解决java访问HBase 1.2.4时put数据卡住很久并报错:Failed to get region location
- BX2001: IE 支持使用 window.clipboardData 访问系统剪贴板,Chrome 和 Safari 中存在类似的 Clipboard 对象但尚未实现,Firefox 和 Opera 不支持这类对象
- MongoDB数据库未授权访问漏洞及加固
- Android 内容提供器---创建内容提供器(Intent对象和数据访问)
- VC中调用XMLHTTP对象访问远程数据的方法
- 多线程访问共享对象和数据方法
- 关于docker remote api未授权访问漏洞的学习与研究
- SharePoint服务器端对象模型 之 使用LINQ进行数据访问操作(Part 3)
- 【云星数据---Scala实战系列(精品版)】:Scala入门教程064-Scala实战源码-类访问伴生对象中的成员2