绕过同源策略
理解同源策略
Same Origin Policy , SOP。同源策略的含义就是对于不同的页面,如果他们的主机名、协议和端口都相同,那他们就是同一来源。否则不是。
参考链接: https://www.anquanke.com/post/id/86078
SOP和DOM
javascript以及其他协议访问DOM时,需要评估URL的三个部分: 主机名、协议和端口。如果两个站点拥有相同的主机名、协议和端口,那么就可以访问DOM。唯一的例外就是IE, 在授权DOM时只验证主机名和协议。
当根玉面下其他主机需要访问源页面的DOM时候,比如open.example.com需要通过login.example.com进行认证时,这些站点可以设置document.domain属性,允许同一域名下的其他站点访问DOM,上面例子可以将 document.domain = "example.com"
参考: 设置document.domain实现js跨域
SOP与CORS
默认情况下,使用XMLHttprequest(XHR)向不同源发送请求,请求可以到达目标网站,但是SOP会阻止读取响应。为了允许XHR通信,需要设置CORS。
如下:
Access-Control-Allow-Origin: *.example.com
Access-Control-Allow-Methods: OPTIONS, GET, POST
Access-Control-Allow-Headers: X-custom
Access-Control-Allow-Credentials: true
SOP与插件
理论上,如果插件来自http://example.com:80/ 那么插件只能访问http://example.com:80/。但实际中,会出现各种各样的sop绕过的情况。举一个例子。
Adobe flash提供一种管理跨域通信的机制,就是在不同源下面的网站根目录放一个crossdomain.xml文件,内容大致如下
有了这个文件就可以在所有子域中应用相互通信。Java和Silverlight也支持crossdomain.xml. Silverlight先查找clientaccesspolicy.xml找不到再查找crossdomain.xml。
IE绕过同源策略
Internet Explorer8 Beta2 及以下版本存在sop绕过漏洞,只需要简单覆盖document对象和domain属性。
var document;
document = {};
document.domain = 'baidu.com';
alert(document.domain);
比较老旧,最新的可以参考这个
CVE-2016-7281:IE/Edge同源策略绕过漏洞
Safari中绕过SOP
使用file协议打开html,里面的js可以绕过同源策略
I'm a local file loaded using the file:// scheme
firefox中绕过SOP
比较久远,在firefox16出现过。提一下。
在一个你操控的源上执行上面的代码,浏览器会弹出另一个选项卡进行HTTPS验证。加载httpsecure.org/abc以及重定向到 https://httpsecure.org/
/lists(user_uid是你的httpsecure handle)。5秒钟之后,exec函数将触发window.location对象解析正则表达式,这会导致在警告框中显示httpsecure handle。
参考 Firefox本地文件泄露以及同源策略绕过
Chrome同源策略绕过(CVE-2014-3160)
chrome’s M36的发型版本中修复了这个漏洞,需要一定的步骤才能验证这个漏洞,原来这篇文章在bobao360上的,现在改成安全客的网址,链接已经丢失,使用google cache才访问得到。
相关文章内容如下。
通过svg导入外部的内容到画布(canvas),步骤如下
在恶意站点,部署恶意的SVG
载入外部的内容
简单渲染SVG
生成dataURL表单
poc
但是这么做是被同源策略拒绝的
通过浏览器缓存来重置trainted 标识,相关代码如下
This exploit can be performed completely without user interaction.
The following buttons are just to help you in understanding the exploit
and how it works: To run it press "exploit step 1" button
followed by "exploit step 2"
水平有限,并没有搞懂。参考google cache:
http://webcache.googleusercontent.com/search?q=cache:FC2hqNzivlMJ:bobao.360.cn/learning/detail/288.html+&cd=2&hl=en&ct=clnk&gl=us
小结
浏览器爆cve会比较多一点,但很多都只有一个编号并没有详情。一个国外不错的技术网站:https://www.brokenbrowser.com/
。内容全部搬运,自己记记看看,不喜勿喷,我技术菜还玻璃心。
参考
- https://www.brokenbrowser.com/
- 《黑客攻防技术宝典-浏览器实战篇》
- http://webcache.googleusercontent.com/search?q=cache:FC2hqNzivlMJ:bobao.360.cn/learning/detail/288.html+&cd=2&hl=en&ct=clnk&gl=us