2014-12-05 104 views
-1

我發現this code在黑客Drupal安裝,我想知道代碼能夠做什麼。我試過各種工具去混淆它,但我一直沒有成功。我被$ r76變量絆倒了。我無法弄清楚它是如何編碼的。翻譯或建議?混淆惡意PHP

<?php $r76="F[<PAlDf|]}[email protected]~79/O8Kx\rH6r&-c5k\n3X,YzhQ> Cp\\wUu2jGoB;0i_SN\tn%Vg)ZI^sTRyvL{\$:=1*mE+JW(q4.t'`a!\"#edb?"; 
+0

這是一個密碼密鑰。通過代碼的其餘部分使用數組訪問來訪問字符串的位和字母,並且可以從中構建一個完全不同的字符串。 – sjagr 2014-12-05 15:15:45

+0

本身,你發佈的東西只不過是一個字符串。因爲您可以通過索引訪問字符串的字符,所以pastebin中的部分引用它爲'$ r76 [24]'。它基本上是一大堆字符,其餘的混淆來自於構建其他變量和字符串。如:'$ string ='abcde'; echo $ string [2];' - >打印'c' – 2014-12-05 15:15:59

+0

最重要的是將此Drupal站點脫機並從備份恢復它,而不必擔心惡意代碼正在做什麼。 – 2014-12-05 15:17:58

回答

2

$r76是密碼密鑰。通過代碼的其餘部分使用數組訪問來訪問字符串的位和字母,並且可以從中構造完全不同的字符串(如函數名稱,變量等)。

以下是對在腳本頂部定義的全局變量的評估。用它們來找出腳本的其餘部分...如果你喜歡浪費任何更多的時間在這方面比我做的事:

[vtton6] => error_reporting 
[jlxru64] => ini_set 
[vajox38] => define 
[qobdl72] => hvcug13 
[yhrfr40] => xyhxn92 
[quzii24] => md5 
[tlyiy12] => count 
[kyioa8] => time 
[glyac65] => constant 
[nhnww15] => npufi61 
[igajs32] => potcc11 
[cpukq94] => omauf87 
[bdonk12] => hwgbo88 
[aurku4] => ioxgo29 
[yqqkt30] => function_exists 
[tnmsd36] => mail 
[chqql44] => armtx32 
[cvtxr40] => ecyws30 
[eavur97] => usleep 
[ptlaz26] => urvfu78 
[xcnkh30] => xllez0 
[wnlxd28] => trim 
[laepm94] => preg_replace 
[nxseo15] => gethostbyname 
[cyzbs96] => preg_match 
[yoejz48] => rzekg39 
[lzjpr73] => wdtjf68 
[osnjl91] => rxrmp70 
[zhjzv93] => prcux47 
[brkww19] => strlen 
[yhcum29] => oyysg80 
[ibere91] => foftg27 
[vszxc90] => array_keys 
[qtgcq90] => socket_select 
[bwpvf88] => ucfirst 
[bdvxl14] => str_replace 
[xizmx47] => ini_get 
[stkuy98] => vkaqq98 
[duiid33] => date 
[grxdw62] => getmxrr 
[nvuxa92] => ybewy88 
[ysmvf63] => min 
[vbhwy58] => Array 
    (
    ) 

[wdbfr89] => fewfx40 
[vxogc32] => preg_split 
[inenw32] => xwses24 
[xyxdn38] => chr 
[rtdlc97] => ord 
[cnrfe78] => urldecode 
[wzekj92] => stripslashes 
[yrqxp89] => array_flip 
[xavtv19] => preg_match_all 
[zjheh80] => base64_encode 
[gisxn89] => socket_create 
[oqikt29] => socket_last_error 
[tvxvt28] => socket_strerror 
[fmlld76] => socket_set_option 
[zwafy86] => socket_set_nonblock 
[uocvp26] => socket_connect 
[xvxof76] => fsockopen 
[vzqix48] => stream_set_blocking 
[sltum36] => stream_set_timeout 
[clkxn20] => stream_socket_client 
[unkvq75] => socket_close 
[yoxhh65] => fclose 
[dskbo69] => socket_read 
[jhtbn88] => feof 
[zflfl64] => fread 
[uwnpx27] => socket_write 
[stdvp96] => fwrite 
[ocmvf65] => rand 
[bkenc7] => explode 
[llpxl21] => pack 
[efljc33] => unpack 
[zndda55] => cgzhg7 
[lzlla40] => array_merge 
[axqrn63] => long2ip 

如果我猜的mail提的模糊變量只是手段這是一個惡意的郵件腳本,旨在將你的PHP服務器變成一個垃圾郵件服務器 - 或者它可能是一個「電話之家」功能,用於更惡劣的目的。

+0

Re:先前的評論「進取/魯莽/':-P YOLO,我想。 – 2014-12-05 15:44:41

+1

@MichaelBerkowski Nah,我將'GLOBALS \ ['([^'] +?'''']正則表達並替換爲局部變量,然後對所有內容進行評估,直到「@ $ vtton6」(函數調用的第一次嘗試或腳本執行。)然後'print_r(get_defined_vars())'和瞧。 – sjagr 2014-12-05 15:46:41

+0

呃,'GLOBALS \ ['([^'] +?''']'(忘記逃脫一個角色 - [_wheeeeee-taptaptap-eeee!_](http://xkcd.com/208/)) – sjagr 2014-12-05 15:53:28