挖洞经验 | 看我如何下载了Ebay日本(www.ebay.co.jp)的网站源码
字数 1121 2025-08-18 11:37:49

利用.git目录泄露漏洞下载网站源码的完整教学

漏洞概述

.git目录泄露是一种常见的网站配置错误漏洞,当网站管理员错误地将版本控制目录(.git)部署到生产环境时,攻击者可以通过访问该目录获取网站的完整源代码及其他敏感信息。

漏洞发现工具

  1. GitTools:由internetwache.org开发的专业工具集,用于检测和利用.git目录泄露漏洞

    • 包含多个脚本用于检测、下载和重建git仓库
    • 项目地址:https://github.com/internetwache/GitTools
  2. 其他检测方法:

    • 手动访问/.git/HEAD文件
    • 使用dirsearch等目录爆破工具扫描

漏洞验证步骤

  1. 访问目标网站的/.git/HEAD文件

    • 示例:https://www.example.com/.git/HEAD
    • 正常响应应返回当前分支名称,如ref: refs/heads/master
  2. 检查其他git相关文件是否可访问:

    • /.git/config
    • /.git/index
    • /.git/logs/HEAD

完整利用流程

方法一:使用GitTools下载源码

  1. 下载GitTools

    git clone https://github.com/internetwache/GitTools.git
    
  2. 检测.git目录是否存在

    ./GitTools/gitdumper.sh https://www.example.com/.git/ /output/path
    
  3. 重建git仓库

    ./GitTools/extractor.sh /input/path /output/path
    
  4. 查看完整源代码

    cd /output/path
    git log -p  # 查看提交历史
    git checkout .  # 检出所有文件
    

方法二:手动下载

  1. 下载.git/index文件分析文件结构
  2. 根据index文件中的文件列表逐个下载
  3. 使用git命令重建仓库

可能获取的敏感信息

  1. 数据库凭证

    • 配置文件中的数据库连接字符串
    • 数据库用户名和密码
  2. 认证信息

    • API密钥和访问令牌
    • 加密密钥
    • OAuth配置
  3. 用户数据

    • 用户上传的文件
    • 日志文件(可能包含敏感操作记录)
    • 会话信息
  4. 系统信息

    • 服务器配置
    • 部署脚本
    • 内部网络拓扑信息

漏洞修复建议

  1. 生产环境配置

    • 确保.git目录不被部署到生产环境
    • 在web服务器配置中禁止访问.git目录
    • 示例Apache配置:
      <DirectoryMatch "^/.*/\.git/">
        Order deny,allow
        Deny from all
      </DirectoryMatch>
      
  2. 构建流程改进

    • 使用CI/CD流程自动部署,避免手动复制.git目录
    • 部署前清理版本控制文件
  3. 监控与检测

    • 定期扫描网站是否存在.git目录泄露
    • 监控异常访问.git目录的请求

漏洞报告与响应

  1. 通过官方漏洞报告渠道提交发现
  2. 提供详细的复现步骤和影响证明
  3. 遵循负责任的披露原则

法律与道德考量

  1. 仅在授权范围内进行测试
  2. 不下载或传播获取的敏感信息
  3. 发现漏洞后及时报告而非利用

参考资源

  1. GitTools GitHub仓库
  2. OWASP Git信息泄露防护指南
  3. Alexa Top 1 Million Security研究报告

通过本教学,您应该能够理解.git目录泄露漏洞的原理、检测方法和利用技术,以及如何防护自己的网站免受此类漏洞影响。

利用.git目录泄露漏洞下载网站源码的完整教学 漏洞概述 .git目录泄露是一种常见的网站配置错误漏洞,当网站管理员错误地将版本控制目录(.git)部署到生产环境时,攻击者可以通过访问该目录获取网站的完整源代码及其他敏感信息。 漏洞发现工具 GitTools :由internetwache.org开发的专业工具集,用于检测和利用.git目录泄露漏洞 包含多个脚本用于检测、下载和重建git仓库 项目地址:https://github.com/internetwache/GitTools 其他检测方法: 手动访问 /.git/HEAD 文件 使用dirsearch等目录爆破工具扫描 漏洞验证步骤 访问目标网站的 /.git/HEAD 文件 示例: https://www.example.com/.git/HEAD 正常响应应返回当前分支名称,如 ref: refs/heads/master 检查其他git相关文件是否可访问: /.git/config /.git/index /.git/logs/HEAD 完整利用流程 方法一:使用GitTools下载源码 下载GitTools : 检测.git目录是否存在 : 重建git仓库 : 查看完整源代码 : 方法二:手动下载 下载 .git/index 文件分析文件结构 根据index文件中的文件列表逐个下载 使用git命令重建仓库 可能获取的敏感信息 数据库凭证 : 配置文件中的数据库连接字符串 数据库用户名和密码 认证信息 : API密钥和访问令牌 加密密钥 OAuth配置 用户数据 : 用户上传的文件 日志文件(可能包含敏感操作记录) 会话信息 系统信息 : 服务器配置 部署脚本 内部网络拓扑信息 漏洞修复建议 生产环境配置 : 确保.git目录不被部署到生产环境 在web服务器配置中禁止访问.git目录 示例Apache配置: 构建流程改进 : 使用CI/CD流程自动部署,避免手动复制.git目录 部署前清理版本控制文件 监控与检测 : 定期扫描网站是否存在.git目录泄露 监控异常访问.git目录的请求 漏洞报告与响应 通过官方漏洞报告渠道提交发现 提供详细的复现步骤和影响证明 遵循负责任的披露原则 法律与道德考量 仅在授权范围内进行测试 不下载或传播获取的敏感信息 发现漏洞后及时报告而非利用 参考资源 GitTools GitHub仓库 OWASP Git信息泄露防护指南 Alexa Top 1 Million Security研究报告 通过本教学,您应该能够理解.git目录泄露漏洞的原理、检测方法和利用技术,以及如何防护自己的网站免受此类漏洞影响。