备份文件暴露自查

检查站点常见备份文件命名是否暴露(.bak/.zip/.sql):发现可下载即记录证据并提醒清理,不下载内容。

备份文件暴露是什么问题

开发与运维习惯会把数据库导出、站点打包、配置文件临时命名为 .bak、.zip、.sql、.tar.gz 等放在 Web 目录下,忘记清理就形成「任何人可下载」的泄露。这类文件一旦可获取,通常直接等价于源码泄露或数据库泄露,是权限体系之外最直接的失陷路径。检查方式是:基于授权清单构造最小范围的请求,确认文件存在并判断响应大小即可下结论,不需要把文件取走。

基本信息

常见命名文件名 + .bak/.zip/.rar/.sql/.tar.gz;站点名 + 日期
常见位置站点根目录、备份目录、上传目录、静态资源目录
验证方式HEAD 请求或 GET 取前几字节,确认存在性与响应大小
处置记录路径与状态码,移交客户清理
纪律不下载完整文件,不查看内容

典型使用场景

  • 信息暴露类检查中确认是否存在可下载的备份文件
  • 为客户梳理部署规范问题:备份与临时文件不应留在 Web 目录
  • 解释「为什么源码泄露」:多数源头是无意暴露的打包文件
  • 配合目录列表暴露检查:两者常同时出现
  • 验证修复效果:清理后确认路径已返回 404

核查原则

核查原则
curl -sI https://example.com/backup.zip            # 用 HEAD 看状态码与内容长度
curl -s -o /dev/null -w '%{http_code} %{size_download}\n' https://example.com/db.sql
# 只比对状态码与大小,判断是否存在;不保存文件内容
# 命名尝试控制在数百次以内,不要用大字典长时间枚举
# 记录:路径 + 状态码 + 响应大小 + 时间,移交客户处置

响应与判断

响应特征含义处置
200 且响应体为文件大小备份文件可下载列入报告,建议立即清理并评估数据影响
200 但返回站点首页服务器做了统一跳转不构成暴露,记录为已核查
403 禁止访问文件存在但受控低风险,仍建议清理
404 或 400文件不存在无需处置
确认「可下载」即是结论:取走整个备份文件既无必要,也会让测试方手中多出一份客户数据,后续处置成本更高。
枚举频率过高会触发 WAF 封禁:控制在数百次请求以内并配合限速,避免影响站点可用性与后续测试。

易错点

  • 下载备份文件检查内容:多出一份客户数据,保管与销毁责任都会落在测试方身上
  • 高频尝试触发 WAF 封禁:出口 IP 被封会波及后续全部测试,还会在客户告警里留下大量噪音
  • 只看状态码不看响应大小:200 可能是站点统一跳转,属于误报
  • 只查根目录:备份文件更多出现在上传目录与静态资源目录中

数据来源与参考

  • 通用 Web 评估实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌