明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

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>  

強制提交, 我仔細看了這篇文章, 后來實踐了下, 發(fā)現(xiàn)兩個onload會后面的覆蓋前面的onload。

并且防御代碼中在操作"body"。

所以這段代碼一定是應用于頁面最下面。

再看了看之前的

《iframe的防插與強插》:/article/200902/31827.html

發(fā)現(xiàn)攻擊者至少可以控制一段JS, 所以才可以“強插”。

最后Monyer給出了一個方案。

不過仔細看看, 還是有很大問題的。

昨晚在YY, JS里有個SLEEP這個函數(shù), 讓后面的代碼等上“半年”才執(zhí)行, 那他的方案就失效了。

于是測試, 居然成功后。

早上和大家聊這個事情, 被狠狠的打擊了下, 原來JS根本沒這個函數(shù)。 。 。 那后面的的確沒執(zhí)行了(JS出錯)。 囧。 。 。

經(jīng)過仔細研究, 終于想到了破解的方法。 HOOK。 。 。

看代碼, 我把monyer的代碼放進去, 然后不讓他執(zhí)行順利。

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正確執(zhí)行


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。