Cross Iframe Trick:the Old New Thing(图)
网络安全 2021-07-03 09:40www.168986.cn网络安全知识
我思考了很久才把这里面的错综复杂的关系整清楚,我想很多人看我狼蚁网站SEO优化的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
测试域名
.A. (/1.html , /4.html)
.B. (/2.html , /3.html)
这次测试主要使用了4个html页面,请牢记1.html和4.html是在域A下; 2.html和3.html是在域B下
来看看什么是Cross Iframe, 他们又能干些什么。
Rule1: 同一个页面下的两个iframe,如果这两个iframe指向同一个域,那么他们可以互相访问,并操作对方页面的脚本。
在 .A. 上,存在一个 1.html ,包含了两个iframe,这两个iframe分别引用了.B. 上的两个页面。其代码如下
1.html:
现在我们的目的就是利用 iframett2_2 去调用 iframett2_3里的javascript的函数。
3.html的代码如下
function alertpoc(){
alert("alert POC");
}
2.html的代码如下
2.html
window.onload = function() {
parent.frames["tt2_3].alertpoc();
}
那么,当访问 http://.A./1.html 时,iframett2_2中的脚本在.B.执行了,它通过读父窗口的iframett2_3,尝试在其中执行脚本函数 alertpoc()。由于tt2_2与tt2_3同在.B. 域中,所以他们之间不存在跨域问题,脚本被允许执行。
500)this.width=500" title="点击这里用新窗口浏览图片" />
Rule2域B能够以 iframe proxy 的方式,操作域A上的脚本,或者传递信息,实现跨域操作。
什么叫iframe proxy呢?其实就是做了一次iframe的迭代。
如下
http://.A./1.html 中包含一个iframe,指向 http://.B./3.html
http://.B./3.html 中又包含一个iframe,指向 http://.A./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
测试域名
.A. (/1.html , /4.html)
.B. (/2.html , /3.html)
这次测试主要使用了4个html页面,请牢记1.html和4.html是在域A下; 2.html和3.html是在域B下
来看看什么是Cross Iframe, 他们又能干些什么。
Rule1: 同一个页面下的两个iframe,如果这两个iframe指向同一个域,那么他们可以互相访问,并操作对方页面的脚本。
在 .A. 上,存在一个 1.html ,包含了两个iframe,这两个iframe分别引用了.B. 上的两个页面。其代码如下
1.html:
现在我们的目的就是利用 iframett2_2 去调用 iframett2_3里的javascript的函数。
3.html的代码如下
function alertpoc(){
alert("alert POC");
}
2.html的代码如下
2.html
window.onload = function() {
parent.frames["tt2_3].alertpoc();
}
那么,当访问 http://.A./1.html 时,iframett2_2中的脚本在.B.执行了,它通过读父窗口的iframett2_3,尝试在其中执行脚本函数 alertpoc()。由于tt2_2与tt2_3同在.B. 域中,所以他们之间不存在跨域问题,脚本被允许执行。
500)this.width=500" title="点击这里用新窗口浏览图片" />
Rule2域B能够以 iframe proxy 的方式,操作域A上的脚本,或者传递信息,实现跨域操作。
什么叫iframe proxy呢?其实就是做了一次iframe的迭代。
如下
http://.A./1.html 中包含一个iframe,指向 http://.B./3.html
http://.B./3.html 中又包含一个iframe,指向 http://.A./4.html
那么这个3.html就是一个iframe proxy,通过 3.html 就能从B域 向 A域的 4.html传递消息,如果4.html还有一些处理的话,就可以执行脚本。
1
网络安全培训
- 网络安全常见漏洞类型 网络安全常见漏洞类型包
- 绿色上网顺口溜七言 绿色上网的宣传标语
- 网络安全等级保护测评 网络安全等级保护条例
- 如何加强网络安全 网络安全隐患有哪些
- 网络安全防护措施有哪些 网络安全等级保护等级
- 如何保障网络安全 如何做好网络安全保障工作
- 维护网络安全的措施有哪些 维护网络安全的主要
- 网络安全工程师好学吗 2024年网络安全工程师好学
- 网络安全注意事项简短 网络安全注意事项100字
- 网络安全面临的挑战 当前网络安全面临的新问题
- 网络安全培训哪个靠谱 网络安全培训找哪个
- 普及网络安全知识内容 普及网络安全教育
- 网络安全防范知识宣传内容 网络安全防范知识宣
- 如何做好网络安全工作 如何做好网络安全工作
- 网络安全常识的丰富内容 网络安全的相关知识
- 青少年网络安全教育片 青少年网络安全知识讲座