代码执行漏洞常见函数
eval : 将字符串当做php去执行
assert : assert(mixed $assertion, Throwable $exception = ?): bool
如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。
preg_replace() , call_user_func() , call_user_func_array() , array_map()
命令执行
system():执行外部程序并输出资料
exec()与shell_exec():exec()与shell_exec()相似,都可以执行系统命令,不同的是返回结果不一样,前者返回最后一行,后者返回全部信息
passthru():passthru ()只调用命令,不返回任何结果,但把命令的运行结果原样地直接输出到标准输出设备上。输入/输出—
popen():popen ()函数打开一个进程管道来执行给定的命令,返回一个文件句柄
proc_open():类似popen() 函数, 但是 proc_open() 提供了更加强大的控制程序执行的能力
常见管道符
window
1、”|“:直接执行后面的语句(无论前面语句的对错 )
2、”||“:如果前面的语句执行失败,则执行后面的语句,前面语句是假才行
3、”&“:两条命令都执行,前面的语句可正可假
4、”&&“:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条数据都执行,前面数据只能为真
linux
1、”;“:执行完前面的语句再执行后面的语句
2、”|“: 显示后面语句的执行结果
3、”||“:前面语句出错时,执行后面语句
4、”&“:两条命令都执行
5、”&&":如果前面的语句为假则直接出错,也不执行后面语句,前面语句为真则两条命令都执行,前面语句只能为真