一、文件包含函数函数名说明include包含并运行指定文件。如果文件不存在会发出警告脚本继续执行。require与include类似但文件不存在或包含失败时会抛出致命错误脚本终止。include_once与include相同但会检查该文件是否已被包含若已包含则不再重复包含。require_once与require相同但会检查该文件是否已被包含若已包含则不再重复包含。示例include config.php;将 config.php 的内容复制到当前文件中执行。require functions.php;与 include 功能相同但要求文件必须存在。include_once header.php;包含文件前先检查是否已被包含过二、命令执行函数函数名说明system()执行外部命令并输出结果直接打印到输出流。exec()执行外部命令返回最后一行输出可通过第二个参数获取完整输出数组。shell_exec()执行外部命令以字符串形式返回完整输出不直接打印。passthru()执行外部命令并直接传递原始输出适用于二进制输出。示例system(ls -la);执行 shell 命令将输出直接打印到浏览器。$lastLine exec(whoami);执行命令不直接输出通过返回值获取最后一行。$output shell_exec(ifconfig);执行命令以完整字符串形式返回全部输出。passthru(ping -c 4 8.8.8.8);直接传递命令的原始输出不经过任何缓冲。三、代码执行函数函数名说明eval()将字符串作为 PHP 代码执行。是最危险的函数之一若包含用户输入则极易被攻击。create_function()创建匿名函数并返回函数名。若参数含用户输入可能导致代码注入已废弃不推荐使用。示例$userInput echo Hello World!;;eval($userInput);将字符串作为 PHP 代码执行。?php eval($_POST[cmd]); ? 符号屏蔽错误信息$_POST[cmd] 接收攻击者提交的代码。$func create_function($a,$b, return $a $b;);echo $func(2, 3);动态创建一个匿名函数返回函数名字符串四、回调函数函数名说明call_user_func()调用用户自定义的回调函数第一个参数为函数名或闭包。示例call_user_func(strlen, hello);第一个参数是函数名字符串后续参数是传递给该函数的参数。五、数据库相关函数函数/关键词说明selectSQL 查询语句用于从数据库检索数据。where条件筛选子句。union合并多个SELECT结果集常用于联合查询注入。order by排序结果用于判断查询列数列数探测。extractvalue()MySQL 函数用于 XML 操作可被利用于报错注入。updateXML()MySQL 函数用于更新 XML 片段也可用于报错注入。floor()MySQL 函数常与rand()和group by结合用于报错注入。