CTF Web .git源码泄露实战详解|git-dumper工具完整复现

📅 2026/6/25 19:01:29
CTF Web .git源码泄露实战详解|git-dumper工具完整复现
一、漏洞原理网站开发使用Git做版本管理上线部署时未删除项目根目录隐藏的 .git 文件夹服务器未配置访问拦截规则攻击者可直接访问 ip:端口/.git/ 获取完整版本仓库通过Git命令读取网页源码、历史提交记录拿到注释、后台地址、flag等敏感信息。本次靶场地址 http://180.76.235.121:33354 页面提示 git很好用聪明的我当然用 直接暴露Git泄露漏洞。二、环境前置准备1. 安装Git Windows客户端下载 Git-2.53.0.2-64-bit.exe 默认安装安装完成后文件夹右键可打开 Git Bash Here 终端。2. 安装git-dumper源码下载工具git-dumper是Python编写的Git仓库导出工具专门用于拉取泄露的.git目录打开Git Bash执行安装命令pip install git-dumper执行后出现 Requirement already satisfied 代表安装成功输出的黄色urllib3版本兼容警告不影响工具运行可直接忽略。三、完整漏洞利用实操步骤步骤1切换工作目录D盘存放源码cd /d命令行前缀变为 LenovoMINGW64 /d 即切换完成。步骤2使用git-dumper拉取靶机Git仓库复制命令后在Git Bash黑框内鼠标右键粘贴执行git-dumper http://180.76.235.121:33354/.git/ ./git源码文件夹终端持续输出 Fetching 代表正在拉取仓库文件少量404报错属于正常现象最后出现 Running git checkout 代表源码还原完毕。步骤3进入下载好的仓库文件夹输入 ls 查看D盘文件确认仓库文件夹名为 git源码文件夹 执行进入目录命令cd git源码文件夹前缀出现 (master) 标识说明当前处于Git仓库根目录。步骤4查看提交记录判断仓库版本情况bgit log日志仅输出一条 init 初始化提交代表仓库无历史版本不能执行版本回滚命令 git reset --hard HEAD^ 强行执行会抛出参数报错。步骤5查看完整提交源码提取Flag核心操作由于无历史版本直接使用 git show 打印当前提交全部网页代码git show终端输出 index.html 完整HTML源码在页面注释中找到隐藏flagflag{92aa7e30-fa34-48e8-9696-0578940ee4d2}四、实操高频报错踩坑汇总1. bash: cd: git_source: No such file or directory自定义文件夹名称与实际下载目录不匹配先用 ls 命令查看当前目录所有文件确认真实文件夹名称后再cd进入。2. fatal: ambiguous argument HEAD^: unknown revision仓库仅有1条初始化提交不存在上一个历史版本放弃回滚操作直接使用 git show 读取完整源码。3. No stash entries found.仓库无暂存、未保存的临时文件 git stash pop 命令无任何作用无需执行。