JS語法 破解WFU Blog的反框架程式

Leave a Comment
近日發現WFU BLOG的反框架語法

突發奇想 思考著有什麼方法能突破這個程式碼呢
突然一個方法掠過我的腦海

根據WFUBlog(wfublog.com)的程式碼

<!-- 防網頁框架 start -->
<script>
//<![CDATA[
if (top.location != location && document.referrer.search("blogger.com") < 0 && document.referrer.search("blogspot.com") < 0) {
top.location.href = location.href;
}
//]]>
</script>
<!-- 防網頁框架 end -->

發現其利用判斷「top.location」來確認是否為原網站
我趕緊利用 typeof 確認 top.location 為什麼類別
原來是!! object !!
想了想後想到
我們如果是嵌入網站的人
我們應可控制全域變數啊

實作

實作了一下本來要直接給top.location覆蓋的
但只要一改變它的值
網址就會立刻被重新導向
因此我決定使用Javascript中深層的方法
OOP設計
OOP是什麼我會在別篇說

過了一會兒 今日的重點程式碼就這樣誕生了
找到</head>放入以下程式碼

<script>
$(()=>{
Object.defineProperty(top,"location",{
get: function() { return "nothing"},
set: function(value) { }
});
})
</script>

講解code

這個code在一開始載入時就會執行了
藉由設定top的location屬性
並且設定
「在取得值時 返回nothing」這個狀態
導致WFU的程式碼在取得值時永遠會得到"nothing"
進而導致了無法成功執行的目的

總結

此篇文章教了大家Object.defineProperty這個方法
但絕對不是要各位去破解他人的網站
未經別人的允許
千萬不要擅自使用
有空我也會寫如何防禦這類的惡意代碼
希望能讓Blogger平台更加強大
Next Post較新的文章 Previous Post較舊的文章 首頁

0 留言:

張貼留言