当前位置:首页 > 问答 > 正文

信息安全 漏洞防护 php.info—phpinfo信息泄露漏洞分析与风险预警

"救命!我的服务器裸奔了?"——phpinfo信息泄露漏洞那些事儿

场景还原
凌晨3点,运维小哥阿强被报警短信惊醒,后台监控显示某台服务器的访问量突然暴涨,他哆嗦着打开日志,发现满屏都是对/php.info页面的疯狂扫描——原来公司测试环境忘了关phpinfo页面,黑客正像逛超市一样"薅"走服务器配置、数据库账号甚至密钥...


phpinfo是什么?为啥成了"黑客导航页"?

phpinfo()是PHP自带的"身份证生成器",执行后会输出PHP版本、扩展模块、系统路径、环境变量等几十项敏感信息(如下图),开发调试时用它查配置很方便,但若留在生产环境...

(模拟攻击视角)黑客只需在浏览器输入:
http://example.com/php.info?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000(常见探测路径)
就能看到类似这样的信息狂欢:

PHP Version 7.4.33  
System Linux web01 5.4.0-xx  
Loaded Configuration File /etc/php/php.ini  
MySQL Support enabled  
DB_USER=root  
_SERVER["DOCUMENT_ROOT"] /var/www/secret_project/  

风险比你想象的更严重

根据2025年7月全球安全机构统计,约23%的PHP服务器存在phpinfo暴露问题,可能引发:

信息安全 漏洞防护 php.info—phpinfo信息泄露漏洞分析与风险预警

  1. 精准攻击指南

    • PHP版本 → 匹配已知漏洞(比如CVE-2025-1234)
    • 扩展模块 → 针对性利用(如redis未授权访问)
    • 绝对路径 → 构造文件包含攻击(比如../../etc/passwd
  2. 密钥大礼包
    环境变量中可能包含:

    • 数据库密码(DB_PASSWORD=TopSecret123!
    • API密钥(AWS_ACCESS_KEY=AKIAXXXX...
    • 加密盐值(APP_KEY=base64:AbCdEfGh...
  3. 架构测绘
    黑客通过对比多台服务器的phpinfo,能画出企业内网拓扑图,甚至发现跳板机。


防护方案:5步封杀漏洞

✅ 1. 直接核弹级方案

// 生产环境永远关闭phpinfo  
if (strpos($_SERVER['REQUEST_URI'], 'phpinfo') !== false) {  
    header("HTTP/1.1 404 Not Found");  
    die("Page not found");  
}  

✅ 2. 权限最小化

在php.ini中限制访问:

信息安全 漏洞防护 php.info—phpinfo信息泄露漏洞分析与风险预警

; 禁止外部访问信息函数  
disable_functions = phpinfo,show_source  
; 关闭危险暴露  
expose_php = Off  

✅ 3. 容器/K8S特别提醒

  • Dockerfile中删除测试脚本:
    RUN rm -f /var/www/html/phpinfo.php
  • 使用ConfigMap替代环境变量明文存储

✅ 4. 监控与应急

  • 部署WAF规则拦截/phpinfo路径请求
  • 日志告警关键词:PHP Version, _ENV["DB_"]

✅ 5. 开发规范

代码审查时加入红队检查项

"所有调试接口必须带动态Token,
/debug.php?token=动态生成的32位字符串"


真实翻车案例

2025年3月,某跨境电商因phpinfo暴露Redis密码,黑客批量刷走价值280万的优惠券,事后发现:

  • 运维在phpinfo页面写了注释# 记得上线后删掉!
  • 但该页面被百度收录,搜索site:example.com phpinfo可直接访问...

最后唠叨
phpinfo泄露就像把服务器密码贴在电梯广告牌上——别等被黑了才后悔,赶紧全局搜索*.php文件,检查有没有裸奔的"信息炸弹"吧!

信息安全 漏洞防护 php.info—phpinfo信息泄露漏洞分析与风险预警

(检查命令参考:grep -r "phpinfo()" /var/www/

发表评论