我爱黑客网首页 设为首页
加入收藏
联系我们
 首 页  技术文章 下载中心 站长学院 交流论坛
 软件:
 文章:        教程:
 推荐: 我爱黑客网论坛
 
 
 
 
   
黑软: Q Q 软件 木马间谍 探嗅监听 溢出攻击 加密解密 漏洞扫描 脚本注入 远程控制 综合利用 聊天工具  
 
技术文章: 爱黑新闻 | 黑客攻防 | 安全防御 | 程序设计 | 系统操作 | 网络技术 | 本站动态 | 业界动态 | 安全公告 | 病毒公告
 
 
您当前的位置:我爱黑客网 -> 黑客攻防 -> 攻防实战 -> 文章内容  
栏目导航
· Q Q 攻防 · 黑客入门
· 攻防实战 · 安全初步
· 工具详解 · 黑客教程
· 漏洞研究 · 黑客编程
· 技术杂谈 · Exploit
热门文章
· 教你入侵六合彩网拿会..
· 骇客学堂:简单入侵个..
· 轻松入侵个人免费空间..
· 无线攻防:破解WEP密钥..
· 会员QQ重大漏洞
· 手把手教你入侵 win20..
· 我也做黑客:简单入侵个..
· 怎样不用密码进入Wind..
· 网吧冲钱从概念到实践..
· 黑客入门者如何获取肉..
· 黑客高手必懂基础内容..
· 我这样破解万象免费上..
相关文章

· Microsoft SQL Serv..
· [组图] Microsoft SQ..
· 推荐:XSS攻击Cookie..
· OllyMachine Script..
· EXECryptor2.3.9主程..
· ASP.NET下使用WScri..
· 用W32DASM破解Macro..
· 谈一个CrackMe解密算..
· JavaScript加密解密..
· 浅谈javascript函数..
查看更多与Cross Iframe Trick:the Old New Thing(图)相关内容

Cross Iframe Trick:the Old New Thing(图)
作者:我爱黑客网  来源:http://www.5ihack.com/  发布时间:2008-9-30 18:28:35  发布人:ghostfire

减小字体 增大字体

Author: axis@ph4nt0m.org

昨天好像不小心标题党了一下,今天整理好paper发出来,希望不会被口水淹没。

我思考了很久才把这里面的错综复杂的关系整清楚,我想很多人看我下面的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 id="tt2_2" src="http://www.B.com/2.html" width="300" height="300" ></iframe>

<iframe id="tt2_3" src="http://www.B.com/3.html" width="300" height="300" ></iframe>

现在我们的目的就是利用 iframe:tt2_2 去调用 iframe:tt2_3里的javascript的函数。

3.html的代码如下:
3.html
<html>
<body>

<script>
function alertpoc(){
alert("alert POC");
}
</script>

</body>
</html>

2.html的代码如下:
2.html
<body>

<script>
window.onload = function() {
parent.frames["tt2_3"].alertpoc();
}
</script>

</body>

那么,当访问 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.html的代码:
1.html
<script>
// 1.html上的弹窗函数
function tt1(fvck){
alert(fvck);
}

</script>

<iframe id="tt2_2" src="http://www.B.com/2.html" width="300" height="300" ></iframe>

<iframe id="tt2_3" src="http://www.B.com/3.html" width="300" height="300" ></iframe>

同在 www.A.com 域下的 4.html代码:
4.html:
<html>
<body>
<script>
//parent.parent.tt1("fvck tt1"); 也可以
top.tt1("fvck tt1"); // 调用 1.html 里的 tt1() 函数

</script>

</body>
</html>

在 www.B.com 域下的3.html 作用是iframe proxy,其代码为:
3.html:
<html>
<body>

<script>
var tt1_4 = document.createElement("iframe");
tt1_4.src = "http://www.A.com/4.html";
document.body.appendChild(tt1_4);
</script>

</body>
</html>

访问 http://www.A.com/1.html 后,将通过 http://www.B.com/3.html ,利用 http://www.A.com/4.html 执行 http://www.A.com/1.html 的脚本

如下:

正确执行了脚本。

跨域的问题已经POC过了,那么存在什么样的风险呢?

先讲跨域的问题。

首先,由于4.html在这里关联性最小,所以我们假设4.html是我们在域A下上传的某个文件,或者是存在XSS漏洞的某个页面。

那么对于域A下的页面 1.html,它包含了 域B的3.html,当域B下的3.html被恶意用户控制时,恶意用户就可以通过4.html,直接攻击到 1.html

所以我们有了第一个攻击方法:
Attack Vector 1:控制iframe proxy后可以跨域攻击父页面

由于域B和域A不是同一个域,所以域A的安全级别和一些防范措施很可能无法涉及到域B,这种信任上的危机将带来一定的风险。

请注意和普通挂马或者是XSS攻击不同的是,域A上的这个页面是我们无法控制或篡改的,但他正好包含了一个指向域B上页面的iframe,所以我们才可以通过域B上的那个页面跨域攻击它。

比如,www.baidu.com/av.html 可能包含了某个广告网站的一些页面,他使用的是iframe的方式: <iframe src="http://www.advertise.com/evil.html" >

那么这个时候,攻击者如果能够控制evil.html,就可以在evil.html 中包含一个指向 http://www.baidu.com/evilupload.html 的iframe;

当正常用户浏览 http://www.baidu.com/av.html 时候,就会受到来自 evilupload.html 的XSS攻击, 而攻击的来源是 http://www.advertise.com/evil.html 发起的。

这种跨域的攻击将会极其隐蔽,因为真正的恶意脚本是写在evilupload.html 里的,所以即便查看了 av.html 和 evil.html 的代码也无法看到任何恶意脚本,只能看到两个iframe。

对于IE 6, 甚至可以把 4.html 改名为 4.JPG 或者 4.RAR, 在iframe proxy中引用后,都将执行脚本。(想到GIFAR没?)

而Firefox 2 则必须保持为 html 文件才能保证脚本的执行。

控制evil.html的方法有很多种,最常见的包括直接攻击域B服务器、篡改客户端网络中的数据、或者是在evil.html 中放置一个 持久性的XSS,都将导致 evil.html 被控制

通过控制 evil.html,调整不同的iframe src地址,我们可以得到第二种攻击方法。
Attack Vector 2:在iframe proxy中直接引用一个非持久性XSS(反射XSS),可以让该XSS在父窗口中持久存在。

[1] [2]  下一页

查看更多与Cross Iframe Trick:the Old New Thing(图)相关内容

[ ] [返回上一页] [打 印] [收 藏]
上一篇文章:
下一篇文章:
      突破IE安全限制获取iframe子框架内的本地cookie(图)       模拟入侵者检测网络攻击
∷相关文章评论∷   (评论内容只代表网友观点,与本站立场无关!) [发表评论]
 
 
 
 
晋ICP备05008232   维护网络安全、传播安全技术才是我们的目标! 
 
关于本站 - 网站帮助 - - 下载声明 - 友情连接 -网站地图