Vulnerability-wiki

🗂️ .env 配置泄露漏洞(.env Configuration Leakage Vulnerability)


✨ 漏洞简介

.env 配置泄露漏洞 指应用程序的环境配置文件 .env 被攻击者访问或下载,导致敏感信息(如数据库密码、API Key、第三方服务凭证等)泄露,进而可能造成系统入侵、数据泄露或服务滥用。

.env 文件通常用于存储应用的环境变量,常见于 Node.js、Laravel、Django 等框架中,是应用配置和密钥管理的重要部分。


📦 基础概念

.env 文件

✅ 配置泄露


🛠 漏洞原理

  1. 文件暴露
    .env 文件未被加入访问白名单,Web 服务器未限制访问权限,外部可直接请求下载。
  2. 敏感信息泄露
    攻击者获取数据库密码、API Key、第三方服务凭证等。
  3. 利用攻击
    利用泄露的凭证登录数据库、调用第三方接口,甚至远程执行命令。
  4. 横向扩展
    通过获取的密钥和密码,进一步攻击关联系统和服务。

🔍 攻击流程

  1. 探测文件是否存在
    • 访问 http(s)://target/.env
  2. 读取文件内容
    • 直接下载或通过爬虫自动检测
  3. 提取敏感信息
    • 数据库连接密码
    • API 密钥、令牌
    • 邮箱密码、第三方服务账号
  4. 进一步利用
    • 登录数据库或后台
    • 利用第三方 API 进行滥用
    • 提权或持久化

💣 漏洞实例

直接访问 .env 文件

GET / .env HTTP/1.1
Host: target.com

服务器错误配置导致返回 .env 内容:

DB_HOST=127.0.0.1
DB_USER=root
DB_PASS=supersecretpassword
API_KEY=abcdefg1234567890

🔗 常见利用场景


🛡 防御措施

✅ 配置服务器拒绝访问 .env 文件

✅ 将 .env 文件放置在 Web 根目录之外

✅ 使用环境变量管理工具

✅ 在代码仓库中忽略 .env 文件

✅ 加密敏感信息


🧪 检测方法

手动检测

自动化检测


📊 总结

项目 内容
漏洞名称 .env 配置泄露漏洞(.env Configuration Leakage Vulnerability)
危害等级 高危(敏感信息泄露导致全面入侵风险)
攻击方式 直接访问 .env 文件 → 提取密钥密码 → 远程入侵
影响范围 Node.js、Laravel、Django 等多种 Web 框架及自定义应用
防御手段 服务器限制访问 .env,根目录外存放,代码仓库忽略,密钥加密