前言
git是一个版本控制工具,通过泄露的.git文件可还原代码
题目如下
wp
1. dirsearch目录扫描
发现存在git泄露,根据提示下载对应git利用工具GitHack,这个工具的特点是能还原历史版本
2. 使用工具下载源码
tips: 最好在linux中操作,注意是python2
python2 GitHack.py http://challenge-5f6194d6f78ceaa2.sandbox.ctfhub.com:10800/.git/
出现success则成功
进入 /dist/challenge-5f6194d6f78ceaa2.sandbox.ctfhub.com_10800 目录下,看到除了这两个文件啥也没有
3. git命令查看
首先确保系统中有git命令
git log 显示仓库历史记录中的所有提交,从近到远
我们可以看到有三次操作,一次是init初始化现有仓库,经过这次命令就会产生.log文件。之后执行了add flag和remove flag。可以判断,flag应该是在add flag的那个版本,我们现在是在remove flag这个版本。
所以,这题有两种解法:
- 第一种是直接查看add flag和remove flag这两个版本的不同,git diff可以实现
- 第二种是回退到之前的版本,git reset可以实现
使用第一种方法
git diff e626f5b962aed348671c18c107e9e4ea54e354c7
或者第二种方法,回退版本,得到一个txt文件,打开得到flag