RCE, Remote Code/Command Excuite(遠程 代碼/命令 執行) 危險函數
phpinfo()
一、查看當前php配置信息,能夠被攻擊者用來進行弱點信息蒐集
二、phpinfo也是經常使用於檢驗代碼執行漏洞是否存在的命令
eval()
把字符串當作PHP代碼執行,意味着只要控制了eval函數的所計算的變量,就能在目標機器上實現任意代碼執行。通常來講eval都會被禁掉
assert()
初學者都會把它的功能看成和eval同樣,但實際上assert是檢查斷言的真假,其工做的原理是先把被檢查的字符串當作PHP代碼執行後再來判斷。assert也是中國菜刀,蟻劍使用的代碼執行函數。
call_user_func()
$a = phpinfo();
call_user_func('eval',$a);
eval這個字符串在這個回調函數的第一個位子,那麼這個字符串就被當作成一個函數,$a在此回調函數的第二個位置,那麼$a中就是第一個位子函數中要計算的數據
exec(),system(),passthru(),shell_exec()
這幾個都是命令執行函數,exec(),shell_exec()不顯示,須要打印出來。system()和passthru()能夠直接顯示出執行結果。shell_exec()等同於反引號``
str_replace()
字符替換,經常使用於對危險輸入進行過濾。由於其本質上是基於黑名單的設置,因此容易被繞過。php