挖洞经验 | 看我如何下载了Ebay日本(www.ebay.co.jp)的网站源码
字数 1121 2025-08-18 11:37:49
利用.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 clone https://github.com/internetwache/GitTools.git -
检测.git目录是否存在:
./GitTools/gitdumper.sh https://www.example.com/.git/ /output/path -
重建git仓库:
./GitTools/extractor.sh /input/path /output/path -
查看完整源代码:
cd /output/path git log -p # 查看提交历史 git checkout . # 检出所有文件
方法二:手动下载
- 下载
.git/index文件分析文件结构 - 根据index文件中的文件列表逐个下载
- 使用git命令重建仓库
可能获取的敏感信息
-
数据库凭证:
- 配置文件中的数据库连接字符串
- 数据库用户名和密码
-
认证信息:
- API密钥和访问令牌
- 加密密钥
- OAuth配置
-
用户数据:
- 用户上传的文件
- 日志文件(可能包含敏感操作记录)
- 会话信息
-
系统信息:
- 服务器配置
- 部署脚本
- 内部网络拓扑信息
漏洞修复建议
-
生产环境配置:
- 确保.git目录不被部署到生产环境
- 在web服务器配置中禁止访问.git目录
- 示例Apache配置:
<DirectoryMatch "^/.*/\.git/"> Order deny,allow Deny from all </DirectoryMatch>
-
构建流程改进:
- 使用CI/CD流程自动部署,避免手动复制.git目录
- 部署前清理版本控制文件
-
监控与检测:
- 定期扫描网站是否存在.git目录泄露
- 监控异常访问.git目录的请求
漏洞报告与响应
- 通过官方漏洞报告渠道提交发现
- 提供详细的复现步骤和影响证明
- 遵循负责任的披露原则
法律与道德考量
- 仅在授权范围内进行测试
- 不下载或传播获取的敏感信息
- 发现漏洞后及时报告而非利用
参考资源
通过本教学,您应该能够理解.git目录泄露漏洞的原理、检测方法和利用技术,以及如何防护自己的网站免受此类漏洞影响。