欧美激情网,国产欧美亚洲高清,欧美屁股xxxxx,欧美群妇大交群,欧美人与物ⅴideos另类,区二区三区在线 | 欧洲

知識學(xué)堂
  • ·聯(lián)系電話:+86.023-75585550
  • ·聯(lián)系傳真:+86.023-75585550
  • ·24小時(shí)手機(jī):13896886023
  • ·QQ 咨 詢:361652718 513960520
當(dāng)前位置 > 首頁 > 知識學(xué)堂 > 常見技術(shù)問題
輕輕松松解密各種網(wǎng)頁木馬
更新時(shí)間:2012-03-18 | 發(fā)布人:本站 | 點(diǎn)擊率:325
或許大家已經(jīng)看過很多解密網(wǎng)馬的辦法。借助工具很多網(wǎng)馬都被輕松的解開,不如:unescape加密,Encode加密,js變異加密,US-ASCII加密,但是如果是手頭沒有工具呢?或者遇到連工具都無法解開的加密呢?輕言放棄可不是我們的作風(fēng)哦!今天就為大家講解一些總結(jié)出來的實(shí)用的解密方式和新方法。

首先大家要理解一個(gè)問題,所有的網(wǎng)馬加密方式,再客戶端都必須被識別,如果無法轉(zhuǎn)換為瀏覽器可以識別的標(biāo)準(zhǔn)代碼的話,是無法被運(yùn)行的!所以理論上所有網(wǎng)馬的加密方式都是可以解密的。我們就拿幾個(gè)典型的例子來講解吧。

首先是我最近遇到一個(gè)網(wǎng)馬,加密結(jié)果如下:

是不是看的很頭疼啊?亂七八糟的,無從下手了,不是簡單的解密工具就行了吧?我們一起來動(dòng)手解決掉它吧!首先我們來一起了解兩個(gè)關(guān)鍵詞“document.write”和“eval”。

“document.write”在JAVASCRIPT是一條打印語句,而“eval”指的是eval()函數(shù),這個(gè)函數(shù)可以把一個(gè)字符串當(dāng)作一個(gè)JavaScript表達(dá)式一樣去執(zhí)行它。如果在JS的加密代碼中碰上document.write,我們一般把它改成“alert”,如果遇到“eval”一般改成“document.write”。我們首先吧eval改為document.write然后運(yùn)行看看結(jié)果:


OK!已經(jīng)初步解密,從最后調(diào)用realexploit()這個(gè)自定義函數(shù),可以看出。這個(gè)就是最近剛出的realplay的漏洞利用網(wǎng)馬了。至于里面的unescape加密的部分就不用我解釋了吧?最快的辦法是復(fù)制那部分代碼。然后加到百度搜索關(guān)鍵詞地址后面即可,http://www.baidu.com/s?wd=,例如document。
  

這段代碼,最快的防翻譯辦法就是加入上面地址中http://www.baidu.com/s?wd=document,返回的結(jié)果是:

下面我們一起看看天網(wǎng)被掛過的一個(gè)網(wǎng)馬:



一堆亂七八糟的,都不知道是什么。如何解讀?其實(shí)在最快最簡單的辦法就是瀏覽這個(gè)頁面,保存時(shí)候選擇中歐(ISO)編碼就可以了。

得到結(jié)果:

與此相類似的還有US-ACSII加密方式的網(wǎng)馬,也可以通過這個(gè)方式來解密。

保存時(shí)候依然選擇中歐(ISO)編碼即可得到如下結(jié)果:

接下來就來看一個(gè)有貌似點(diǎn)難度的了。最近黑客防線出的《黑暗網(wǎng)馬》使用了火狐里一個(gè)人出的加密工具。解密過程需要提供密碼,難道是為了防止修改?看起來有點(diǎn)類似md5加密,難道真的不可逆?1K的網(wǎng)馬可以加密到15K甚至更大,太可怕了吧?讓我們一起來把他解密出來吧!

在長長的代碼最后我們看到了
var pass="TEST.WWW.CUTEQQ.CN";
if(pass){
pass=unescape(pass);
var cuteqq,cuteqq2,cuteqq3;
cuteqq=XOR(unescape(Qq_784378237),STR.md5(pass));
cuteqq2=XOR(unescape(Qq784378237),STR.md5(pass));
cuteqq3=cuteqq+www_cuteqq_cn_s+cuteqq2;
document.write(cuteqq3);
return(false);
}

意思就是調(diào)用pass驗(yàn)證函數(shù),如果為真,就繼續(xù)執(zhí)行里面的內(nèi)容。XOR是運(yùn)算符,對兩個(gè)表達(dá)式進(jìn)行邏輯“異或”運(yùn)算。這里就不詳細(xì)了解了。關(guān)鍵是最后的Document.write(cuteqq3)了解網(wǎng)頁代碼的人就知道這段具體的意思就是,如果密碼驗(yàn)證正確。就輸出cuteqq3這個(gè)函數(shù)里的內(nèi)容。當(dāng)我們遇到document.write的時(shí)候我們一般把它改成“alert”得到初步解密:

這里我們就遇到一個(gè)問題。Alert根據(jù)里顯示器的大小顯示內(nèi)容。無法完整顯示出內(nèi)容。怎么辦?我們引入一段javascript代碼:document.getElementById('textfield').value=cuteqq3;替換掉原來的document.write(cuteqq3);然后在頁面的</head>
<body>和<script></script>之間添加一段,效果如下:
<html>
<;head>
<title>網(wǎng)馬</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>
<textarea name="textfield" cols="100" rows="50"></textarea>
</label>
</form>
<script>
….這里省略解密部分
</script>
這里的意思是建立一個(gè)文本框,然后吧剛才的cuteqq3的內(nèi)容賦值給文本框,Textfield是文本框的名稱?梢宰约盒薷摹5潜仨毿薷膁ocument.getElementById('textfield').value里對應(yīng)的名稱,再次運(yùn)行剛才的網(wǎng)馬得到結(jié)果:



解密后是:

至于里面的\x72\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79這樣的代碼,我們就可以用簡單的辦法突破了。

十六進(jìn)制轉(zhuǎn)義字符串如下:
<SCRIPT LANGUAGE="JavaScript">
alert("\x72\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79")
</SCRIPT>

就可以顯示出來了,順便說下。剛才的加密頁面里用到了防止查看源代碼的技術(shù)。就是適用下面的代碼
<noscript>
<iframe src=*>
</iframe>
</noscript>

這里的noscript元素用來定義在腳本未被執(zhí)行時(shí)的替代內(nèi)容(文本),此標(biāo)簽可被用于可識別<script>標(biāo)簽但無法支持其中的腳本的瀏覽器。但當(dāng)瀏覽器支持javascript腳本時(shí),就起到隱藏noscript標(biāo)簽中間內(nèi)容的作用,所以導(dǎo)致無法查看源代碼。很多時(shí)候我們要盜取別人的網(wǎng)馬的時(shí)候就會(huì)遇到這樣的問題,怎么辦呢?簡單!我們前面說道,所有網(wǎng)馬要被執(zhí)行都要先轉(zhuǎn)換為瀏覽器可以識別的代碼,另外,網(wǎng)馬執(zhí)行的同時(shí)也是要保存到瀏覽器的緩存中的。默認(rèn)位置是:C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files,打開你要盜取的網(wǎng)馬的頁面前先清空下你的IE緩存,然后刷新網(wǎng)馬頁面,就會(huì)發(fā)現(xiàn)網(wǎng)馬乖乖的躺再里面了!(本地測試的網(wǎng)頁是不會(huì)保存到緩存的所以這里不截圖了)
  
下面我們再來看一種加密方式

這個(gè)是申通快遞被掛馬的時(shí)候抓到的,后來無意中得知這個(gè)加密方式用到的是JS混淆,http://www.cha88.cn/safe/JSencode.php這個(gè)網(wǎng)站有這個(gè)加密方式,但是沒有解密方式。怎么辦?簡單!

大家一起看看最后這段代碼:

t=utf8to16(xxtea_decrypt(base64decode(t), '\x64\x63\x75\x6d\x65\x6e\x74'));//對t數(shù)組進(jìn)行提取、重組、解密處理

window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65"] (t);//輸出加密后的t的內(nèi)容

是不是有什么感覺?覺得像什么?

我們把\x64\x6f\x63\x75\x6d\x65\x6e\x74和\x77\x72\x69\x74\x65分別用我們剛才的alert的辦法解密出來,他們分別對應(yīng)的是document和write,也就是說最后這2行的意思就是對t數(shù)組進(jìn)行提取、重組、解密處理并輸出最后正確的結(jié)果。知道這個(gè)我們就很容易理解了,所有網(wǎng)馬到最后為了輸出讓瀏覽器識別,都要進(jìn)行最后的解密輸出。通常就是document.write和eval里的內(nèi)容了。那么我們用剛才的document.getElementById('textfield').value=t;替換掉window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65"] (t);并再頁面頂端的<body>下面加入如下代碼:
<form id="form1" name="form1" method="post" action="">
<label>
<textarea name="textfield" cols="100" rows="50"></textarea>
</label>
</form>

再次運(yùn)行網(wǎng)馬。即可得到第一層解密的結(jié)果:

這還不是我們要的最終結(jié)果。還記得上面講過的?遇到eval就替換為alert:

  
到的就是解密的結(jié)果,點(diǎn)下窗口標(biāo)題,然后Ctrl+C快捷鍵,復(fù)制下,然后粘貼出來,就可以得到代碼了!

順便提下最近比較流行的溢出型網(wǎng)馬的解密方式:var shellcode = unescape("邐"+"邐"+

這樣的代碼其實(shí)是可以翻譯成明文的,這里使用的加密方式是將ASCII轉(zhuǎn)換為unescape,對應(yīng)解密方式就是反過來啦,借助工具

就可以輕易解密了,這樣你就可以再?zèng)]有生成器的時(shí)候?qū)e人的網(wǎng)馬改為自己的了!
無意中獵取到一個(gè)Oday的話,就happy了O(∩_∩)o…
最后終結(jié):
我們適用到的幾個(gè)關(guān)鍵詞和辦法:
關(guān)鍵詞:
1. document.write
2. eval
3. alert
4. <noscript>
<iframe src=*>
</iframe>
</noscript>
5.document.getElementById('textfield').value=t;

<form id="form1" name="form1" method="post" action="">
<label>
<textarea name="textfield" cols="100" rows="50"></textarea>
</label>
</form>
用法:
碰上document.write,我們一般把它改成“alert”,如果遇到“eval”一般改成“document.write”,遇到alert無法顯示完整代碼時(shí)適用document.getElementById('textfield').value=t;將他賦值給一個(gè)文本框,然后再<form id="form1" name="form1" method="post" action="">
<label>
<textarea name="textfield" cols="100" rows="50"></textarea>
</label>
</form>
表單中顯示出來,如果遇到使用了
<noscript>
<iframe src=*>
</iframe>
</noscript>
而無法顯示網(wǎng)頁代碼的。就到IE緩存中尋找被保存到本地的網(wǎng)馬文件,用我提供的辦法應(yīng)該可以解開絕大部分的網(wǎng)馬了,
希望大家看完知道不是盲目的套用,而是可以舉一反三!這樣才能不斷進(jìn)步。沒有你做不到的,只有你想不到的!