重寫JavaScript的eval和document.write方法


目前進行的一個項目,需要對網頁中的JavaScript進行分析,從而甄別出敏感的內容。

但是由於很多網頁內部進行了加密和混淆,對於這樣子的網頁腳本呢,處理起來非常的困難。

之前有嘗試使用JavaScript引擎進行模擬運行,從而得出解密后的內容。

再后來我想到一個好的辦法。

因為無論時加密還是混淆了的代碼,其仍舊需要時一個瀏覽器能夠看懂的腳本才可以。

那么我只需要在關鍵的函數處實現注入,就能很簡單的識別出敏感的信息了。

因此嘗試着對eval和document.write方法進行了重寫經過測試呢,也確實可以運行。現在把代碼貼出來:

<script> 
var tempeval = eval;
var tempwrite = document.write;
</script>

<script>
//重寫eval
eval = function(str) {
alert('eval:'+str);
tempeval(str);
};
</script>

<script>
//重寫document.write
function newwrite(str){
alert('write:'+str);
document.write = tempwrite;
document.write(str);
document.write = newwrite;
};

document.write = newwrite;
</script>


<script>
//測試
eval('document.write("<h1>This is true string</h1>");');
document.write("<h1>This is true string too</h1>");
</script>



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com