常见漏洞验证121 条

phpinfo 页面暴露检查

phpinfo() 页面会泄露环境变量、扩展、路径与部分配置;核查其可达性与内容敏感度,建议生产环境移除。

phpinfo 页面暴露什么

phpinfo 页面会把运行环境摊开给访问者:PHP 版本与编译参数、已加载扩展、配置文件路径、文档根目录、环境变量与部分请求信息。对攻击者来说这是一份环境说明书;对运维来说它通常只是上线时留下的探针。检查的目标是确认它的可达性、内容敏感度,以及生产环境是否可以移除。

基本信息

常见路径info.php、phpinfo.php、test.php、探针类页面
可获取信息版本、扩展、路径、环境变量、部分配置项
风险为后续针对性利用提供版本与环境线索
处置生产移除文件,或限制来源与访问认证
替代方案用受限的诊断接口做环境检查

典型使用场景

  • 外网暴露面检查:确认探针页面是否可被公网访问
  • 上线遗留清理:核对部署包中是否还带有调试页面
  • 变更前后核对:确认升级过程中未重新启用探针
  • 配合其他问题:环境信息常用于判断其他漏洞的适用性
  • 自查闭环:为运维提供可执行的清理与替代方案

检查方式

检查方式
# 只记录状态码,不保存整页内容
curl -s -o /dev/null -w "%{http_code}\n" https://target.example/info.php
# 常见路径一次判一遍
for p in info.php phpinfo.php test.php; do printf '%s ' "$p"; curl -s -o /dev/null -w '%{http_code}\n' "https://target.example/$p"; done
# 记录:页面可达性与是否含敏感变量名,不复制取值

页面内容与风险

页面区块泄露内容风险说明
版本信息PHP 版本与构建参数便于匹配已知问题
扩展列表已加载模块暴露可用功能面
路径信息配置与文档根目录辅助定位其他文件
环境变量可能含密钥类配置按最高敏感度处理
请求信息请求头与客户端地址用于判断代理与信任链
环境变量中可能含密钥类配置:报告只写存在敏感变量,不复制任何取值,更不要整页存档。
只测默认文件名会漏掉很多情况:备份文件、带后缀的版本与内部命名习惯都可能存在,按客户命名规范扩展一小批候选即可。

易错点

  • 把页面内容整页存档,扩大泄密面
  • 只测默认文件名,忽略备份与旧版路径
  • 把探针页面当作低风险忽略,未评估环境变量内容
  • 清理后未回归确认,页面仍可通过别名访问

数据来源与参考

  • PHP 官方文档(phpinfo)
  • CWE-200
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌