一、概述
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。
使用BugScanTeam的GitHack(.git 泄漏利用工具,可还原历史版本)
二、git命令使用
查看历史记录 git log
切换版本 git reset
对比两次提交 git diff
三、GitHack 使用
依赖
不需要安装其它 Python 库,只需要有 git 命令
使用方法
python GitHack.py http://www.example.com/.git/
还原后的文件在 dist/ 目录下
工作流程
尝试获取 packs克隆
尝试目录遍历克隆
尝试从缓存文件(index)、commit记录中恢复
四、做ctfhub题,log
1、检测目标网址有git信息
2、使用GitHack破解


切换到dist目录,dit log查看提交日志。git diff 查看修改记录找到flag。

五、做ctfhub题,Stash
1、Stash了解
git stash 是 Git 中非常实用的命令,它的作用是将你当前工作区中未完成的修改"临时隐藏(寄存)"起来,让工作区瞬间恢复到上次提交(commit)的干净状态。这在你需要紧急切换分支去修复 Bug,但手头代码还没写完时特别有用。
(1)基础保存:将当前已跟踪文件的修改打包保存。
git stash
(2)查看寄存列表:当你寄存了多次修改后,可以查看当前的"寄存清单":
git stash list
(3)取回(恢复)修改
git stash pop恢复并删除
git stash apply只恢复
2、解题
按之前步骤使用GitHack获取git存储的源代码内容
python2 ./GitHack.py http://challenge-9cbe6b00daa25dac.sandbox.ctfhub.com:10800/.git/
使用git stash pop恢复,找到flag隐藏的文件查看
