通用跨站脚本攻击(UXSS)
有同学问,用百度搜索了下,发现国内相关介绍基本是没有,就写篇文章来介绍下。不过看到有现成的介绍,就拿来翻译修改下。
本文的内容主要翻译来自该文章,把一些没必要的话给删了,做了一些整理修改,然后补充一些案例。
http://www.acunetix.com/blog/web-security-zone/universal-cross-site-scripting-uxss/
什么是UXSS?
大家都知道有反射型XSS、存储型XSS、DomXSS,还有之前wooyun知识库上由gainover翻译的mXSS,也就是突变XSS(文章地址http://drops.wooyun.org/tips/956)。
可能比较少同学了解何谓UXSS,UXSS全称Universal Cross-Site Scripting,翻译过来就是通用型XSS,也叫Universal XSS。
那么,UXSS由于前面提到的几种XSS有什么区别?
常见的XSS攻击的是因为客户端或服务端的代码开发不严谨等问题而存在漏洞的目标网站或者应用程序。这些攻击的先决条件是页面存在漏洞,而它们的影响往往也围绕着漏洞页面本身的用户会话。换句话说,因为浏览器的安全功能的影响,XSS攻击只能读取受感染的会话,而无法读取其他的会话信息,也就是同源策略的影响。
UXSS保留了基本XSS的特点,利用漏洞,执行恶意代码,但是有一个重要的区别:
不同于常见的XSS,UXSS是一种利用浏览器或者浏览器扩展漏洞来制造产生XSS的条件并执行代码的一种攻击类型。
讲了这么多大家应该明白,通俗的说,就是原来我们进行XSS攻击等都是针对Web应用本身,是因为Web应用本身存在漏洞才能被我们利用攻击;而UXSS不同的是通过浏览器或者浏览器扩展的漏洞来”制作XSS漏洞”,然后剩下的我们就可以像普通XSS那样利用攻击了。
影响
那么UXSS与通常的XSS有什么影响的区别?前面我们提到,因为同源策略,即使一个漏洞页面存在XSS,我们可以访问它的用户会话信息等,但是无法访问其他域的相关的会话信息,而因为UXSS是利用浏览器本身或者浏览器扩展程序的漏洞,所以对于攻击发起时浏览器打开或缓存的所有页面(即使不同域的情况)的会话信息都可以进行访问。简单的说,UXSS不需要一个漏洞页面来触发攻击,它可以渗透入安全没有问题的页面,从而创造一个漏洞,而该页面原先是安全无漏洞的(比如下面的例子)。
Web浏览器是正在使用的最流行的应用程序之一、。浏览器可能有漏洞被发现,有一整个的漏洞纰漏过程,当一个新漏洞被发现的时候,不管是把漏洞藏起来自己利用还是说报告给官方,而这个过程中都有一段不小的时间,这一过程中漏洞都可能被利用于UXSS。
不仅是浏览器本身的漏洞,现在主流浏览器都支持扩展程序的安装,而众多的浏览器扩展程序可能导致带来更多的漏洞和安全问题。
因为UXSS攻击不需要页面本身存在漏洞,同时可能访问其他安全无漏洞页面,使得UXSS成为XSS里危险和最具破坏性的攻击类型之一。
UXSS案例
1、IE6或火狐浏览器扩展程序Adobe Acrobat的漏洞
这是一个比较老的漏洞,但这是一个比较经典的例子。当使用扩展程序时导致错误,使得代码可以执行。这是一个在pdf阅读器中的bug,允许攻击者在客户端执行脚本。构造恶意页面,写入恶意脚本,并利用扩展程序打开pdf时运行代码。
Stefano Di Paola 和 Giorgio Fedon在一个在Mozilla Firefox浏览器Adobe Reader的插件中可利用的缺陷中第一个记录和描述的UXSS
Adobe插件通过一系列参数允许从外部数据源取数据进行文档表单的填充,如果没有正确的执行,将允许跨站脚本攻击。原pdf: http://events.ccc.de/congress/2006/Fahrplan/attachments/1158-Subverting_Ajax.pdf或者详见http://jeremiahgrossman.blogspot.com/2007/01/what-you-need-to-know-about-uxss-in.html
2、IE8跨站脚本过滤器缺陷
David Lindsay 和Eduardo Vela Nava已经在2010年的BlackHat Europe展示了这个漏洞的UXSS利用。
IE8中内置了XSS过滤器,用于检测反射XSS,并采取纠正措施:在页面渲染之前更改响应内容。
在这种特殊情况下,等号将会被过滤器去除,但是通过精心构造的XSS字符串在特定的地方,这个逻辑会导致浏览器创建XSS条件。微软的响应是改变了XSS过滤器去除的字符。具体可以查看pdf: http://p42.us/ie8xss/Abusing_IE8s_XSS_Filters.pdf
3、Flash Player UXSS 漏洞 – CVE-2011-2107
一个在2011年Flash Player插件(当时的所有版本)中的缺陷使得攻击者通过使用构造的.swf文件,可以访问Gmail设置和添加转发地址。因此攻击者可以收到任意一个被攻破的Gmail帐号的所有邮件副本(发送的时候都会抄送份)。Adobe承认了该漏洞,详见http://www.adobe.com/support/security/bulletins/apsb11-13.html
4、安卓版Chrome浏览器漏洞
移动设备也不例外,而且可以成为XSS攻击的目标。Chrome安卓版存在一个漏洞,允许攻击者将恶意代码注入到Chrome通过Intent对象加载的任意的web页面。具体详见https://code.google.com/p/chromium/issues/detail?id=144813
其他的例子
http://insert-script.blogspot.com/2013/08/uxss-internet-explorer-euc-jp-parsing.html
http://www.rapid7.com/db/modules/auxiliary/gather/apple_safari_webarchive_uxss
http://www.wooyun.org/bugs/wooyun-2014-074655
http://www.cnvd.org.cn/flaw/show/CNVD-2012-5462
http://www.wooyun.org/bugs/wooyun-2014-071915
http://cxsecurity.com/issue/WLB-2012100086
http://www.maths.usyd.edu.au/u/psz/ff-utf7-uxss.html
更多的大家自己搜索把
典例分析
本来整理这篇文章的时候还不知道大牛发了一个UXSS,写完上wooyun正好就看到mramydnei大牛发了《安卓浏览器SOP绕过漏洞(UXSS)》的漏洞(详见http://zone.wooyun.org/content/14945),就补充到文章里。
简要分析下,这个漏洞是构造一个页面,页面嵌入iframe,然后通过\u0000进行浏览器的sop绕过进行XSS。
更多细节可以看大牛的博客以及参考文章http://parsec.me/625.html、http://parsec.me/660.html。
防范
防范UXSS的经验法则是打好所有的补丁,保持最新版本。
这将确保您的环境中使用的浏览器版本以及您所需要的扩展程序,是不可能通过UXSS进行漏洞利用的。
而然,这是否意味着你就高枕无忧呢?不是这样的,运行最新的版本也不能保证是完全安全的。当一个漏洞被发现、提交、确认、修复已经发布补丁,中间是有时间差的,而在这段时间内,将可能收到UXSS攻击。
另外,更多的XSS相关知识可以访问 https://xssing.org,目前在添加资料中
通用跨站脚本攻击(UXSS)的更多相关文章
- PHP进行安全字段和防止XSS跨站脚本攻击过滤(通用版)
废话不多说,直接贴使用方法和代码: 使用方式:1)写在公共方法里面,随时调用即可.2)写入类文件,使用是include_once 即可 代码: /* 进行安全字段和xss跨站脚本攻击过滤(通用版) - ...
- ASP.NET脚本过滤-防止跨站脚本攻击[转]
ASP.Net 1.1后引入了对提交表单自动检查是否存在XSS(跨站脚本攻击)的能力.当用户试图用<xxxx>之类的输入影响页面返回结果的时候,ASP.Net的引擎会引发一个HttpReq ...
- ASP.NET脚本过滤-防止跨站脚本攻击(收集别人的)
ASP.Net 1.1后引入了对提交表单自动检查是否存在XSS(跨站脚本攻击)的能力.当用户试图用<xxxx>之类的输入影响页面返回结果的时候,ASP.Net的引擎会引发一个 HttpRe ...
- 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范
昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...
- Web安全相关(一):跨站脚本攻击(XSS)
简介 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往Web页 ...
- XSS(跨站脚本攻击)的最全总结
从OWASP的官网意译过来,加上自己的理解,算是比较全面的介绍.有兴趣的可私下交流. XSS 跨站脚本攻击 ============================================== ...
- 关于XSS(跨站脚本攻击)和CSRF(跨站请求伪造)
我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...
- 跨站脚本攻击XSS
跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到 ...
- XSS 跨站脚本攻击之构造剖析(一)
1.XSS-Filter:跨站脚本过滤器,用于分析用户提交的输入,并消除潜在的跨站脚本攻击 (1)XSS Filter实际上是一段精心编写的过滤函数作用是过滤XSS跨站脚本代码: (2)绕过XSS F ...
随机推荐
- C语言 文件操作4--文件结构体FILE的理解以及缓冲区再讲
//文件结构体FILE的理解以及缓冲区再讲 #include<stdio.h> #include<stdlib.h> //要点:文件结构 //struct _iobuf { / ...
- no.5.print sum
#-*-coding=utf-8-*- for a in range(1,50,1): for b in range(1,50,1): for c in range(1,50,1): if a+b+c ...
- Discuz X3核心文件解析
<?php /** * [Discuz!] (C)2001-2099 Comsenz Inc. * This is NOT a freeware, use is subjec ...
- 未能进入中断模式,原因如下:源文件“XXXXXX”不属于正在调试的项目。
这个问题是由于项目文件位置变动导致的.提示框已经说的比较清楚了. 首先可以尝试[重新生成] ,一般可以解决这个问题了. 我遇到的情况是,设置配置时,不小心取消了生成选择. 所以打开配置管理器,把相关的 ...
- [转]SRTM、ASTER GDEM等全球数字高程数据(DEM)下载方式简介
之前写过一篇短文对比过几种数字高程数据的区别:5种全球高程数据对比,这篇文章简要介绍下如何下载这些数据. 1.DLR的数字高程数据.该数据也是SRTM(shuttle radar topo ...
- scrapy 的三个入门应用场景
说明: 本文参照了官网的 dmoz 爬虫例子. 不过这个例子有些年头了,而 dmoz.org 的网页结构已经不同以前.所以我对xpath也相应地进行了修改. 概要: 本文提出了scrapy 的三个入门 ...
- python中class 的一行式构造器
好处:避免类初始化时大量重复的赋值语句 用到了魔法__dict__ # 一行式构造器 class Test(): # 初始化 def __init__(self, a, b, c=2, d=3, e= ...
- 学习Shell脚本编程(第1期)_Shell命令行书写规则
Shell命令行的书写规则 对Shell命令行基本功能的理解有助于编写更好的Shell程序,在执行Shell命令时多个命令可以在一个命令行上运行,但此时要使用分号(:)分隔命令,例如: [root@l ...
- 【MyEclipse 2015】 逆向破解实录系列【终】(纯研究)
声明 My Eclipse 2015 程序版权为Genuitec, L.L.C所有. My Eclipse 2015 的注册码.激活码等授权为Genuitec, L.L.C及其付费用户所有. 本文只从 ...
- 浅析Java异常
1.什么是异常 结构不佳的代码不能运行,这是Java的基本理念. 发现错误的理想时机是在编译期.然而,编译器并不能发现所有的错误,余下的问题就需要在程序运行时解决.这就需要错误能通过某种方式,把适当的 ...