iframe的防插与强插及破解三位一体

来源:韦江代博客 责任编辑:栏目编辑 发表时间:2013-07-02 03:07 点击:
iframe的防插与强插

注:我指一个网站被第三方网站以iframe的形式调用时,被调用网站的禁止策略 和 调用网站的突破禁止策略,跟XSS麽关系,但跟clickjacking有点联系。(这里简称插与被插,这样理解起来简单些;并不是指向某一个iframe里插入数据)

网上通用的防插那版是(子http://test2/test2.html):

if(top.location != self.location){
top.location = self.location;
}

强插方案为(父http://test1/test1.html):

var location="";

其中这个location是对被赋值的top.location方法的覆盖,导致方法失效。

昨天又遇到另外一个版本(子http://test2/test2.html):

if(window!=parent){
parent.navigate(location);
}

强插方案为(父http://test1/test1.html):

var navigate="";

即是对parent.navigate方法的覆盖,导致再次引用失效。

那么两个和在一起的强插方案是,在iframe之前加入(父http://test1/test1.html):

<script>var location="";var navigate="";</script>

ok,就这些,睡觉去了!

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

iframe的防插与强插(二)

iframe的防插与强插(一)中介绍了“市面上”能见到的两种防御被第三方网站iframe的方法,以及相应的变态突破方法。

貌似把“受害人”逼上绝路了,我们再来看看这两个方法:

它们都能够判断出自己已经被XX了,可是它们是怎么做的呢?

方法一说:先生,请您出去。

方法二说:同志,请您出去!

然而这先生也说了句:“我就不出去!

因为“受害人”和这位先生又不是一家子,似乎通过命令对方还无可奈何 —— 同源策略!

但事实上,“请您出去”这种方式显然是针对君子不对小人的,所以Monyer教你一种好方法——“乱棍打出去!”(子http://test2/test2.html

<script>
window.onload = function(){
if(top!=self){
   var f = document.createElement("form");
   f.action=location;
   f.target="_parent";
   document.body.appendChild(f);
   f.submit();
}
};
</script>

目前我个人还没有找到突破的方法,所以至少比以上两种方法更暴力一些!

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

iframe的防插破解

看了《iframe的防插与强插(二)》代码如下:
<script>
window.onload = function(){
if(top!=self){
var f = document.createElement("form");
f.action=location;
f.target="_parent";
document.body.appendChild(f);
f.submit();
}
};
</script>

强制提交,我仔细看了这篇文章,后来实践了下,发现两个onload会后面的覆盖前面的onload。

并且防御代码中在操作”body”。

所以这段代码一定是应用于页面最下面。

再看了看之前的

《iframe的防插与强插》

http://hi.baidu.com/monyer/blog/item/1551b68f453f78e9f11f3667.html

发现攻击者至少可以控制一段JS,所以才可以“强插”。

最后Monyer给出了一个方案。

不过仔细看看,还是有很大问题的。

昨晚在YY,JS里有个SLEEP这个函数,让后面的代码等上“半年”才执行,那他的方案就失效了。

于是测试,居然成功后。

早上和大家聊这个事情,被狠狠的打击了下,原来JS根本

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1