首页/安全/渗透测试与安全评估速查/.env 等配置文件暴露检查
常见漏洞验证121 条

.env 等配置文件暴露检查

环境配置文件(.env、config 备份、密钥文件)被部署到 Web 目录时可直读;核查常见文件名与目录的可达性。

配置文件暴露为什么常见

环境配置文件(.env、config 备份、密钥文件、容器编排文件)被部署到 Web 目录时可直接下载。问题的根因通常是部署方式:构建产物里带上了本地配置、备份脚本把文件丢在站点根目录、或者中间件把目录当静态资源发布。核查按命名规律探测可达性即可,不需要读取内容——命中就记录文件类型与状态码。

基本信息

常见对象.env、config.php.bak、settings.old、docker-compose.yml、.git-credentials
探测方式按命名规律发起 GET,只看状态码与响应长度
判定标准返回 200 或可下载内容即视为暴露
修复方向配置移出 Web 根目录、目录级拦截、部署检查清单

典型使用场景

  • 上线前扫描构建产物中的配置文件残留
  • 渗透测试信息收集阶段确认凭据泄露风险
  • 排查运维备份脚本把文件写到站点目录的问题
  • 核查中间件默认发布的目录(如 Tomcat webapps 下的备份)
  • 为部署流程补充产物审查环节提供依据

检查方式

检查方式
curl -s -o /dev/null -w '%{http_code}\n' https://target.example/.env
curl -s -o /dev/null -w '%{http_code}\n' https://target.example/config/app.ini.bak
curl -s -o /dev/null -w '%{http_code}\n' https://target.example/.env.example
# 命中后只记录路径、状态码与响应长度;内容不下载、不写入报告

对象与风险

文件类型典型内容暴露后果
.env数据库口令、密钥、第三方凭据直接获得系统访问凭据
配置备份旧版本配置与调试开关绕过已修复的配置项
密钥文件私钥、证书、云平台 AK/SK身份被冒用,影响范围大
编排文件服务拓扑、内部地址与端口暴露内部架构细节
IDE 与系统残留.DS_Store、目录列表泄露目录结构与文件名
命中即停止:不要下载配置内容做“取证”,那会把凭据复制到评估机上,属于超出授权边界的数据获取。
修复要点是三层:配置存放位置(移出 Web 根目录)、Web 服务器拦截(按扩展名与点开头的文件拒绝)、发布流程检查(构建产物审查与自动化告警)。

易错点

  • 下载配置文件内容做证据,触碰凭据红线并构成实质性数据获取
  • 只按单一命名规律探测,漏掉带版本号与日期后缀的备份文件
  • 未识别软 404,站点对任意路径都返回 200 导致大量误报
  • 只在主域名检查,忽略静态资源域名、测试域名与 CDN 回源地址
  • 修复只在当前服务器做拦截,下次发布又把配置带到站点目录

数据来源与参考

  • 通用部署安全实践
  • CWE-538
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌