Cross Iframe Trick:the Old New Thing(图)
互联网 发布时间:2008-10-08 19:36:28 作者:佚名 我要评论
我思考了很久才把这里面的错综复杂的关系整清楚,我想很多人看我下面的paper会睡着,或者干脆“一目百行”的跳过去,但如果你真的想弄懂,请调试我的 每一个poc,会非常有助于理解(虽然你还是可能会晕)。请尊重俺的劳动成果,码这么多字不容易。欢迎技术讨论,但谢绝没仔
我思考了很久才把这里面的错综复杂的关系整清楚,我想很多人看我下面的paper会睡着,或者干脆“一目百行”的跳过去,但如果你真的想弄懂,请调试我的 每一个poc,会非常有助于理解(虽然你还是可能会晕)。请尊重俺的劳动成果,码这么多字不容易。欢迎技术讨论,但谢绝没仔细看就来指手画脚的。@_@
首先,为了帮助大家更好的理解,我先讲讲这种攻击能够达成什么效果:
1. 跨域执行脚本(IE、Firefox)
2. 把非持久性XSS变成持久性XSS
3. 跨页面执行脚本
4. 浏览器将很难修补这一“特性”造成的威胁
5. 当然还是有一些条件限制的,本篇只是在理论上描述了这种攻击。
那么,什么是cross iframe,简单来说就是把iframe做一个迭代,以实现一些iframe之间的交叉数据访问。在正常的web应用中,许多地方都有用到这种技术,比如facebook,比如yahoo。
但是由cross iframe引申出来一些安全隐患,则是我这里要探讨的重点。
以下是我的测试环境:
Windows XP SP2
IE 6 SP2 (我只有IE6,没有IE7,请自行测试IE7)
Firefox 2.0.0.16
测试域名:
www.A.com (/1.html , /4.html)
www.B.com (/2.html , /3.html)
这次测试主要使用了4个html页面,请牢记1.html和4.html是在域A下; 2.html和3.html是在域B下
首先来看看什么是Cross Iframe, 他们又能干些什么。
Rule1: 同一个页面下的两个iframe,如果这两个iframe指向同一个域,那么他们可以互相访问,并操作对方页面的脚本。
在 www.A.com 上,存在一个 1.html ,包含了两个iframe,这两个iframe分别引用了www.B.com 上的两个页面。其代码如下:
1.html:
现在我们的目的就是利用 iframe:tt2_2 去调用 iframe:tt2_3里的javascript的函数。
3.html的代码如下:
function alertpoc(){
alert("alert POC");
}
2.html的代码如下:
2.html:
window.onload = function() {
parent.frames["tt2_3].alertpoc();
}
那么,当访问 http://www.A.com/1.html 时,iframe:tt2_2中的脚本在www.B.com执行了,它通过读父窗口的iframe:tt2_3,尝试在其中执行脚本函数 alertpoc()。由于tt2_2与tt2_3同在www.B.com 域中,所以他们之间不存在跨域问题,脚本被允许执行。
Rule2:域B能够以 iframe proxy 的方式,操作域A上的脚本,或者传递信息,实现跨域操作。
什么叫iframe proxy呢?其实就是做了一次iframe的迭代。
如下:
http://www.A.com/1.html 中包含一个iframe,指向 http://www.B.com/3.html
http://www.B.com/3.html 中又包含一个iframe,指向 http://www.A.com/4.html
那么这个3.html就是一个iframe proxy,通过 3.html 就能从B域 向 A域的 4.html传递消息,如果4.html还有一些处理的话,就可以执行脚本。
首先,为了帮助大家更好的理解,我先讲讲这种攻击能够达成什么效果:
1. 跨域执行脚本(IE、Firefox)
2. 把非持久性XSS变成持久性XSS
3. 跨页面执行脚本
4. 浏览器将很难修补这一“特性”造成的威胁
5. 当然还是有一些条件限制的,本篇只是在理论上描述了这种攻击。
那么,什么是cross iframe,简单来说就是把iframe做一个迭代,以实现一些iframe之间的交叉数据访问。在正常的web应用中,许多地方都有用到这种技术,比如facebook,比如yahoo。
但是由cross iframe引申出来一些安全隐患,则是我这里要探讨的重点。
以下是我的测试环境:
Windows XP SP2
IE 6 SP2 (我只有IE6,没有IE7,请自行测试IE7)
Firefox 2.0.0.16
测试域名:
www.A.com (/1.html , /4.html)
www.B.com (/2.html , /3.html)
这次测试主要使用了4个html页面,请牢记1.html和4.html是在域A下; 2.html和3.html是在域B下
首先来看看什么是Cross Iframe, 他们又能干些什么。
Rule1: 同一个页面下的两个iframe,如果这两个iframe指向同一个域,那么他们可以互相访问,并操作对方页面的脚本。
在 www.A.com 上,存在一个 1.html ,包含了两个iframe,这两个iframe分别引用了www.B.com 上的两个页面。其代码如下:
1.html:
现在我们的目的就是利用 iframe:tt2_2 去调用 iframe:tt2_3里的javascript的函数。
3.html的代码如下:
function alertpoc(){
alert("alert POC");
}
2.html的代码如下:
2.html:
window.onload = function() {
parent.frames["tt2_3].alertpoc();
}
那么,当访问 http://www.A.com/1.html 时,iframe:tt2_2中的脚本在www.B.com执行了,它通过读父窗口的iframe:tt2_3,尝试在其中执行脚本函数 alertpoc()。由于tt2_2与tt2_3同在www.B.com 域中,所以他们之间不存在跨域问题,脚本被允许执行。
Rule2:域B能够以 iframe proxy 的方式,操作域A上的脚本,或者传递信息,实现跨域操作。
什么叫iframe proxy呢?其实就是做了一次iframe的迭代。
如下:
http://www.A.com/1.html 中包含一个iframe,指向 http://www.B.com/3.html
http://www.B.com/3.html 中又包含一个iframe,指向 http://www.A.com/4.html
那么这个3.html就是一个iframe proxy,通过 3.html 就能从B域 向 A域的 4.html传递消息,如果4.html还有一些处理的话,就可以执行脚本。
相关文章
- CC主要是用来攻击页面的,大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,论坛的页2024-01-06
- 入侵者主要通过Potato程序攻击拥有SYSTEM权限的端口伪造网络身份认证过程,利用NTLM重放机制骗取SYSTEM身份令牌,最终取得系统权限,该安全风险微软并不认为存在漏洞,所以2021-04-15
- 这篇文章主要介绍了文件上传漏洞全面渗透分析小结,这里主要为大家分享一下防御方法,需要的朋友可以参考下2021-03-21
- 这篇文章主要介绍了sql手工注入语句&SQL手工注入大全,需要的朋友可以参考下2017-09-06
- 这篇文章主要介绍了详解Filezilla server 提权,需要的朋友可以参考下2017-05-13
FileZilla Server 2008 x64 提权与防御方法
这篇文章主要介绍了FileZilla Server 2008 x64 提权与防御方法,需要的朋友可以参考下2017-05-13- 不久之前我们说过关于http和https的区别,对于加密的https,我们一直认为它是相对安全的,可今天要讲的是,一种绕过HTTPS加密得到明文信息的web攻击方式,不知道这消息对你2016-08-10
iPhone和Mac也会被黑 一条iMessage密码可能就被盗了
一直以来苹果系统的安全性都是比安卓要高的,但是再安全的系统也免不了漏洞,苹果也一样。最近爆出的新漏洞,只需要接收一条多媒体信息或者iMessage就会导致用户信息泄露。2016-07-27- 国家正在修正关于黑客方面的法律法规,有一条震惊黑客圈的“世纪佳缘”起诉白帽黑客事件,深深的伤害了广大黑客们的心,加上扎克伯格和特拉维斯·卡兰尼克账号被盗,于是黑2016-07-11
如何逆向破解HawkEye keylogger键盘记录器进入攻击者邮箱
面对恶意邮件攻击,我们就只能默默忍受被他攻击,连自我保护能力都没有谈什么反抗?让人痛快的是,如今有了解决办法,逆向破解键盘记录器,进入攻击者邮箱2016-07-06
最新评论