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