iframe的防插破解
發(fā)表時間:2023-06-02 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]看了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ǔ)常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。