網站webshell木馬檔案如何刪除

語言: CN / TW / HK

Webshell實際上是一個能夠執行惡意功能的PHP程式碼檔案。Webshell要執行惡意功能,其程式碼結構主要由兩部分組成:資料傳遞部分和資料執行部分。在webshell中,資料傳遞部分是指webshell中用來接收外部輸入資料的部分,webshell可以根據外部輸入資料動態地互動執行惡意功能。在webshell中,資料執行部分指的是webshell中的system函式,用於執行程式碼執行和執行命令等命令。

在基本的webshell中,資料傳遞主要通過諸如$_GET、$_POST、$_COOKIES等變數傳遞或直接寫入程式碼,資料執行主要是通過eval或assert,或者直接呼叫函式來執行。為了避開檢測機制,各種webshell在基礎webshell上採用相應的變形方法,根據不同的變形量,將變形方法分為資料傳遞部分和資料執行部分兩種。傳輸部的變形主要有:將資料放到伺服器的外部檔案中,webshell讀取檔案獲取執行資料。

(1)通過諸如curl/file_get_contents等功能在遠端伺服器上獲取執行資料。

(2)將資料放入資料庫,並通過讀取資料庫獲取執行資料。對於資料執行部分,變形方法主要是使用/e修飾符preg_replace函式執行程式碼。使用一個支援回撥機制的函式來執行程式碼回撥。比如:

array_map,array_filter,array_reduce等。

(3)函式與變數函式一起執行。

(4)使用匿名函式實現功能。

(5)利用反射函式ReflectionFunction執行功能。

PHPwebshell實時動態檢測是一種基於PHP擴充套件的webshell檢測方法,它通過監測PHP程式碼的編譯和執行,以及外部輸入變數標記跟蹤,黑白名單機制,主要包括五個模組:變數標記跟蹤,禁用函式hook檢測,危險函式hook檢測,編譯函式超載檢測,資料庫黑白表檢測,編譯函式過載檢測,資料庫黑白名單檢測,編譯函式過載檢測,如果對自己網站程式程式碼裡的後門查殺不懂得話可以向網站安全公司尋求幫助。

變數標誌跟蹤。

PHP擴充套件提供了通過PG(http_globals)變數通過GET、POST、COOKIE傳遞的引數內容。variable標籤表示字串變數儲存在PG(http_globals)中。可變跟蹤是指簡單的字串處理函式,比如strval,explode,當被標記的變數是函式引數時,它還用變數來標記函式結果。

PHP中字串變數的值儲存在zvalue,其中包含字串指標和字串長度的字串長度,而PHP核心是根據保字串長度讀取字串內容。對字串變數進行標記的方法是通過擴充套件字串變數的佔用記憶體,在字串的值後加上標記特徵。由於沒有修改字串長度,變數標記將無法像這樣修改字串的值。當檢測到長度之後的字串指標內容是否是標記特徵就可以了。