最近很多小夥伴一直在討論網站被黑和下載的免費 WordPress 主題外掛被掛馬的話題,那麼今天小 V 就來教大家如何識別 WordPress 主題外掛是否被留了後門。
首先來說下 WordPress 的執行環境,相信稍微有點常識的站長都知道 WordPress 是一款執行在 php+mysql 構架之上的建站系統,而且 wordpress 主題外掛都是編寫成.php 字尾的可執行檔案這是為什麼 wordpress 的免費主題外掛很容易留後門的問題。
既然都是由 php 編寫的,那麼我們只要知道一般 php 後門常用程式就能一定程度上察覺到主題外掛中是否存在後門木馬,下面小 V 列出一些常見 php 後門函式:
執行系統命令: system, passthru, shell_exec, exec, popen, proc_open(高危)程式碼執行: eval, assert, preg_replace('/$pattern/e')(高危)檔案操作:file_get_contents, file_put_contents, fputs, fwrite(高危)字串加密解密壓縮解壓隱藏:base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13, base64_decode, gzcompress, chr(可疑)wordpress 建立後門使用者:wp_create_user, WP_User, set_role(高危)
如果在主題中小 V 標註的高危程式碼基本就可以確定這款主題很有問題了,基本上都是為了留後門或者是做些小動作了。如果是發現了本文標註的可疑程式碼那就要注意了很有可能加密部分的程式碼就是後門。
很多小夥伴肯定不懂 preg_replace(‘/$pattern/e’) 這段程式碼是什麼意思,下面小 V 就來給大家解釋下,preg_replace 函式使用 e 修飾符之後在執行逆向引用替換完之後會將替換的程式碼當作 php 程式碼執行,所以也是一種非常常見的後門程式碼。
在檢測主題外掛是否包含後門的時候只要用文字搜尋工具或者軟體搜尋主題外掛的 php 檔案是否包含以上關鍵字,在搜尋到 preg_replace 時需要人工對比下程式碼檢視是否包含 e 修飾符,如果主題檔案出現大量的 chr(2).chr(3).chr(58) 這樣類似的程式碼也要小心了,另外發現主題檔案出現一大堆無規則的字元也要小心了一般都是加密後的程式碼很可能隱藏了後門。
PS:由於平時整理的主題和外掛比較多,所以很難將所有的投稿檔案都檢查一邊。最多也就檢查下幾個關鍵檔案是否掛馬,所以請大家在下載主題後儘量再自己檢查一遍。