### phpinfo 页面你会关注哪些信息

1. PHP 配置和安全设置

这些信息直接决定了攻击的难度和可用方法

- `disable_functions`: 这是最关键的信息。如果这个列表为空，或者只禁用了少数函数，那么我就可以直接使用像 `system()`、`exec()`、`shell_exec()`、`passthru()` 等命令执行函数来获取 WebShell，进行系统命令执行
- `allow_url_fopen` 和 `allow_url_include`: 如果这两个选项都为 `On`，则存在远程文件包含 (RFI) 漏洞的可能性。攻击者可以从远程服务器加载恶意 PHP 文件并执行
- `open_basedir`: 如果这个选项设置了，它会限制 PHP 脚本只能在指定的目录及其子目录中操作。这能有效限制攻击者的权限，但我会寻找绕过它的方法
- `display_errors`: 如果这个选项是 `On`，服务器会显示详细的错误信息，包括文件路径、数据库查询语句等。这些信息对于 SQL 注入、文件包含等漏洞的调试和利用非常有帮助
- `expose_php`: 如果这个选项为 `On`，`phpinfo()` 页面会暴露 PHP 的精确版本号（例如 PHP/8.1.12）。这使得我能快速在漏洞数据库（如 CVEs）中查找该版本已知的安全漏洞，并针对性地进行攻击

2. 服务器环境信息

这些信息帮助我了解 PHP 运行在什么样的环境中，以及我能获得多大的权限

- `SERVER_SOFTWARE`: 告诉我 Web 服务器的类型和版本，例如 Apache、Nginx、IIS 等。这些服务器本身也可能存在漏洞
- `_SERVER["DOCUMENT_ROOT"]`: 暴露了网站的根目录路径，这是进行本地文件包含 (LFI) 和目录遍历攻击的关键信息
- `User` 和 `Group`: `phpinfo()` 会显示 PHP 进程是以哪个用户和用户组运行的。这决定了我能执行哪些操作，例如是否可以读取其他用户的文件、是否可以写入某些目录等
- `PATH`: 环境变量 `PATH` 包含了系统命令的搜索路径，如果我能执行命令，这能帮助我快速找到像 `whoami`、`ls`、`id` 等常用命令

3. 已加载的模块和扩展

这些信息揭示了 PHP 环境的功能，以及潜在的攻击面

- `cURL`、`sockets`: 如果这些扩展存在，我可能会尝试服务器端请求伪造 (SSRF) 攻击，通过服务器向内部网络发起请求，探测内网服务
- `pdo`、`mysqli`、`sqlsrv` 等数据库扩展: 确认网站使用了哪种数据库，为后续的SQL 注入攻击提供目标
- `GD`、`ImageMagick` 等图像处理扩展: 如果存在，可能会有图像处理库漏洞，导致命令执行。

4. 文件系统和路径信息

- `_SERVER["SCRIPT_FILENAME"]`: 暴露了当前脚本在服务器上的绝对路径。这是进行本地文件包含、路径遍历、以及了解服务器文件结构的重要线索
- `upload_tmp_dir`: 如果我能找到一个文件上传漏洞，这个选项会告诉我临时文件上传的目录。有时候，我可以在这个目录上传并执行一个 WebShell