WEB开发网
开发学院网络安全安全技术 跨站脚本攻击深入解析(上) 阅读

跨站脚本攻击深入解析(上)

 2009-02-25 13:54:15 来源:WEB开发网   
核心提示: 那么任何http://xyz.foo.com/anywhere.html页面内的脚本都可以向http://www.foo.com/bar/baz.html发送HTTP请求,并可以读取其内容,跨站脚本攻击深入解析(上)(3),在此种情况下,如果攻击者能够向http://xyz.foo.com

那么任何http://xyz.foo.com/anywhere.html页面内的脚本都可以向http://www.foo.com/bar/baz.html发送HTTP请求,并可以读取其内容。在此种情况下,如果攻击者能够向http://xyz.foo.com/anywhere.html中注入HTML或JavaScript的话,那么他同时也能在http://www.foo.com/bar/baz.html中注入JavaScript代码。

为此,攻击者需要首先在http://xyz.foo.com/anywhere.html(其document.domain设为foo.com)中注入HTML和JavaScript,并向http://www.foo.com/bar/baz.html(其document.domain也设为foo.com)中载入一个iframe,然后就可以通过JavaScript来访问该iframe的内容了。例如,http://xyz.foo.com/anywhere.html中的下列代码将在www.foo.com域中执行一个JavaScript的alert()函数:

< iframe src="http://www.foo.com/bar/baz.html"

onload="frames[0].document.body.innerHTML+=’<img src=x

onerror=alert(1)’">< / iframe >

这样,document.domain将允许攻击者跨域活动(域际旅行)。注意,你不能在document.domain变量中放入任何域名,相反,只能在document.domain变量中放置“源”页面即所在页面的域名的上级域名,如www.foo.com的上级域名是foo.com 。

在Firefox浏览器中,攻击者可以利用__defineGetter__()来操纵document.domain,命令document.domain返回攻击者所选的任意字符串。这个不会损害浏览器的同源策略,因为它只对JavaScript引擎有影响,而不会影响底层的文档对象模型(DOM),然而这对于依靠document.domain在后台进行跨域请求的JavaScript应用程序却是有影响的。例如,假如一个后台请求http://somesite.com/GetInformation?callback=callbackFunction的应答的HTTP体如下所示:

上一页  1 2 3 4 5 6 7 8  下一页

Tags:脚本 攻击 深入

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接