Remote Code Execute 远程代码执行
原理:
应用程序在调用一些能够将字符串转换为代码的函数(例如php中的eval中),没有考虑用户是否控制这个字符串,将造成代码执行漏洞。
函数
eval() //把字符串作为PHP代码执行
assert() //检查一个断言是否为 FALSE,可用来执行代码
preg_replace() //执行一个正则表达式的搜索和替换
call_user_func() //把第一个参数作为回调函数调用
call_user_func_array() //调用回调函数,并把一个数组参数作为回调函数的参数
array_map() //为数组的每个元素应用回调函数
$a($b) //动态函数
利用
php中可以进行远程代码执行的函数有很多,也常常被一些webshell来做免杀利用。如果我们 的输入可以走到以下的函数作为参数,那么就有可能有远程代码执行。
Remote Command Execte远程命令执行
用户通过浏览器或者远程攻击提交执行命令,由于服务器端,没有针对执行函数做过滤,就执行了恶意命令。
函数
exec // 执行一个外部程序
passthru // 执行外部程序并且显示原始输出
proc_open // 执行一个命令,并且打开用来输入/输出的文件指针。
shell_exec // 通过 shell 执行命令并将完整的输出以字符串的方式返回
system // 执行外部程序,并且显示输出
审计
通过审计工具,查找具体函数然后具体分析
标签:审计,PHP,函数,代码,代码执行,字符串,执行,远程 From: https://www.cnblogs.com/o-O-oO/p/18451505