前面漏洞出现的php函数
call_user_func() 调用一个普通回调函数 call_user_func($_GET['func'], $_GET['arg']);
call_user_func_array() 带参数数组调用回调函数 和上面一樣,参数以数组传递
array_map() 对数组每个元素应用回调函数 array_map($_GET['func'], $_GET['data']);
pathinfo() 返回文件路径信息(如扩展名)
basename() 返回路径中的文件名部分 $name = basename($_FILES['file']['name']);
strrchr() / strstr() 查找字符串中出先的位置 用于获取文件后缀 $ext = strrchr($filename, '.');
system() 执行外部命令并输出结果 用户输入拼接到命令中然后直接执行系统命令 system("ping " . $ip);
exec() 执行外部命令(只返回最后一行) 同上,但回显不直接 exec("ping " . $ip, $output);
shell_exec() 执行命令(反引号 ` 的底层) | 同上 | $result = shell_exec("ping $ip"); |
eval() 将字符串当作PHP代码执行 一句话木马 的核心 eval($_POST['cmd']);
preg_replace() 正则替换
$_GET / $_POST 接收用户传入的参数(超全局变量) 所有注入的入口 $id = $_GET['id'];
mysqli_query() 执行一条SQL查询直接把用户参数拼入SQL 注入
echo / print 直接输出字符串 未编码输出用户输入反射/存储型XSS echo "Welcome " . $_GET['name'];
addslashes() 在单引号、双引号等前加反斜杠转义 $id = addslashes($_GET['id']);
stripslashes() 去除反斜杠转义 $name = stripslashes($_POST['name']);
urldecode() URL解码二次编码绕过过滤 $input = urldecode($_GET['input']);
