明辉手游网中心:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

iframe的防插破解

[摘要]看了Monyer的文章:《iframe的防插与强插(二)》:/article/200902/31888.html 代码如下: JavaScript代码 <script>...

看了Monyer的文章:

《iframe的防插与强插(二)》:/article/200902/31888.html

 

代码如下:

 

JavaScript代码

<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的防插与强插》:/article/200902/31827.html

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

最后Monyer给出了一个方案。

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

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

于是测试, 居然成功后。

早上和大家聊这个事情, 被狠狠的打击了下, 原来JS根本没这个函数。 。 。 那后面的的确没执行了(JS出错)。 囧。 。 。

经过仔细研究, 终于想到了破解的方法。 HOOK。 。 。

看代码, 我把monyer的代码放进去, 然后不让他执行顺利。

JavaScript代码

<head>   

</head>   

<body>   

呵呵。 。 。    

  

</body>   

<script>   

  

document.createElement = function(test)   

{   

    var f  =  new Object();   

       f.action=location;   

       f.target="_parent";   

          

       f.submit = function (){};   

       return f;   

}   

document.body.appendChild = function(test){}   

  

window.onload = function(){alert(1);}   

  

//----------------------------下面是Monyer的方法。 原样copy。    

window.onload = function(){   

if(top!=self){   

   var f = document.createElement("form");   

   f.action=location;   

   f.target="_parent";   

   document.body.appendChild(f);   

   f.submit();   

}   

};   

//广告时间http://www.inbreak.net   

alert('hackedbykxlzx');   

</script>   

做一个类, HOOK掉这个方法里所有用掉的东西。 。 。 嘿嘿。 。 。 同时保证后面的JS正确执行


上面是电脑上网安全的一些基础常识,学习了安全知识,几乎可以让你免费电脑中毒的烦扰。