信息泄露-常见敏感文件
字数 1598 2025-09-01 11:26:17

敏感文件泄露漏洞详解与防护指南

1. Git文件泄露

1.1 简介

Git泄露是指在使用Git版本控制系统时,由于配置不当或操作失误,导致.git目录及其中包含的敏感信息(如密码、密钥、源代码等)被意外上传到公开可访问的地方。

1.2 危害

  • 攻击者可下载.git文件夹中的所有内容
  • 可能获取数据库账号密码、源码等敏感信息
  • 通过白盒审计可能直接获得服务器控制权限

1.3 利用方法

  1. 检测

    dirsearch -u http://example.com/ -i 200
    

    查找.git/HEAD.git/config等文件是否存在

  2. 下载仓库
    使用GitTools工具:

    ./gitdumper.sh http://example.com/.git/ output_dir
    
  3. 还原代码

    git checkout .
    git log
    git show
    

1.4 修复方案

  • 不要将.git文件暴露在网站根目录下
  • 配置Web服务器阻止访问.git目录
  • 部署前清理.git目录

2. SVN泄露

2.1 简介

SVN泄露是指Web服务器错误上传了Subversion版本控制系统的元数据目录.svn/,导致攻击者可以还原网站源码。

2.2 危害

  • 还原源码文件
  • 获取配置文件(如config.php、.env)
  • 发现漏洞(如RCE、SQL注入)
  • 获取后台入口、账号密码等

2.3 利用方法

使用svnExploit工具:

SvnExploit - Dump the source code by svn

2.4 修复方案

  • Nginx/Apache配置拦截.svn目录访问
  • 部署时使用rsync --exclude='.svn/'
  • 清理.svn/元数据目录

3. Hg泄露

3.1 简介

Mercurial版本控制系统的.hg/目录暴露在Web服务器上,可能导致整个项目源代码泄露。

3.2 利用方法

使用dvcs-ripper工具:

perl rip-hg.pl -v -u http://example.com/.hg/

3.3 修复方案

  • 移除.hg目录的Web访问权限
  • 部署前清理.hg目录

4. Vim文件泄露

4.1 简介

Vim编辑器生成的临时文件或备份文件被意外暴露,常见文件:

  • .filename.swp:交换文件
  • .filename.swo:辅助交换文件
  • filename~:备份文件
  • .filename.un~:Undo备份

4.2 危害

  • 源码泄露
  • 敏感信息泄露
  • 数据库账户和密码泄露

4.3 利用方法

vim -r .index.php.swp
# 或
strings .index.php.swp

4.4 修复方案

  • 定期扫描并删除交换文件
  • 禁用Vim自动生成临时文件
  • 配置Vim不生成备份文件

5. 网站备份文件泄露

5.1 常见泄露文件

  • .rar, .zip, .7z, .tar.gz
  • .bak, .txt, .html

5.2 危害

  • 整站源代码泄露
  • 服务器配置信息泄露
  • 数据库连接信息泄露

5.3 修复方案

  • 删除存在的压缩包文件
  • 配置服务器禁止访问备份文件
  • 建立规范的备份流程

6. .DS_Store文件泄漏

6.1 简介

macOS系统自动生成的文件,出现在Web根目录可能导致目录结构泄露。

6.2 利用方法

使用ds_store_exp工具:

python ds_store_exp.py http://example.com/.DS_Store

6.3 修复方案

  • 删除Web目录下的.DS_Store文件
  • 配置Finder不生成.DS_Store文件

7. heapdump泄露

7.1 简介

Java应用中堆内存转储文件.hprof泄露,常见于Spring Boot应用的/heapdump/actuator/heapdump接口。

7.2 危害

  • 可能暴露Shiro框架的用户名和密码
  • 可能泄露加密密钥
  • 可用于反序列化漏洞利用

7.3 修复方案

禁用或加固Heap Dump入口:

# application.yml 配置示例
management:
  endpoints:
    web:
      exposure:
        exclude: heapdump

综合防护建议

  1. 部署前检查

    • 扫描并删除所有版本控制目录(.git, .svn, .hg)
    • 删除编辑器临时文件和备份文件
    • 移除不必要的压缩包和备份文件
  2. 服务器配置

    • 配置Web服务器禁止访问敏感文件扩展名
    • 限制目录列表功能
    • 关闭不必要的调试接口
  3. 开发规范

    • 建立敏感文件检查清单
    • 实施自动化部署流程
    • 定期进行安全扫描
  4. 监控与响应

    • 设置文件变更监控
    • 建立应急响应流程
    • 定期进行安全审计
敏感文件泄露漏洞详解与防护指南 1. Git文件泄露 1.1 简介 Git泄露是指在使用Git版本控制系统时,由于配置不当或操作失误,导致 .git 目录及其中包含的敏感信息(如密码、密钥、源代码等)被意外上传到公开可访问的地方。 1.2 危害 攻击者可下载 .git 文件夹中的所有内容 可能获取数据库账号密码、源码等敏感信息 通过白盒审计可能直接获得服务器控制权限 1.3 利用方法 检测 : 查找 .git/HEAD 、 .git/config 等文件是否存在 下载仓库 : 使用GitTools工具: 还原代码 : 1.4 修复方案 不要将 .git 文件暴露在网站根目录下 配置Web服务器阻止访问 .git 目录 部署前清理 .git 目录 2. SVN泄露 2.1 简介 SVN泄露是指Web服务器错误上传了Subversion版本控制系统的元数据目录 .svn/ ,导致攻击者可以还原网站源码。 2.2 危害 还原源码文件 获取配置文件(如config.php、.env) 发现漏洞(如RCE、SQL注入) 获取后台入口、账号密码等 2.3 利用方法 使用svnExploit工具: 2.4 修复方案 Nginx/Apache配置拦截 .svn 目录访问 部署时使用 rsync --exclude='.svn/' 清理 .svn/ 元数据目录 3. Hg泄露 3.1 简介 Mercurial版本控制系统的 .hg/ 目录暴露在Web服务器上,可能导致整个项目源代码泄露。 3.2 利用方法 使用dvcs-ripper工具: 3.3 修复方案 移除 .hg 目录的Web访问权限 部署前清理 .hg 目录 4. Vim文件泄露 4.1 简介 Vim编辑器生成的临时文件或备份文件被意外暴露,常见文件: .filename.swp :交换文件 .filename.swo :辅助交换文件 filename~ :备份文件 .filename.un~ :Undo备份 4.2 危害 源码泄露 敏感信息泄露 数据库账户和密码泄露 4.3 利用方法 4.4 修复方案 定期扫描并删除交换文件 禁用Vim自动生成临时文件 配置Vim不生成备份文件 5. 网站备份文件泄露 5.1 常见泄露文件 .rar , .zip , .7z , .tar.gz .bak , .txt , .html 5.2 危害 整站源代码泄露 服务器配置信息泄露 数据库连接信息泄露 5.3 修复方案 删除存在的压缩包文件 配置服务器禁止访问备份文件 建立规范的备份流程 6. .DS_ Store文件泄漏 6.1 简介 macOS系统自动生成的文件,出现在Web根目录可能导致目录结构泄露。 6.2 利用方法 使用ds_ store_ exp工具: 6.3 修复方案 删除Web目录下的 .DS_Store 文件 配置Finder不生成 .DS_Store 文件 7. heapdump泄露 7.1 简介 Java应用中堆内存转储文件 .hprof 泄露,常见于Spring Boot应用的 /heapdump 或 /actuator/heapdump 接口。 7.2 危害 可能暴露Shiro框架的用户名和密码 可能泄露加密密钥 可用于反序列化漏洞利用 7.3 修复方案 禁用或加固Heap Dump入口: 综合防护建议 部署前检查 : 扫描并删除所有版本控制目录(.git, .svn, .hg) 删除编辑器临时文件和备份文件 移除不必要的压缩包和备份文件 服务器配置 : 配置Web服务器禁止访问敏感文件扩展名 限制目录列表功能 关闭不必要的调试接口 开发规范 : 建立敏感文件检查清单 实施自动化部署流程 定期进行安全扫描 监控与响应 : 设置文件变更监控 建立应急响应流程 定期进行安全审计