CTFHub-Git泄露-Log

CTFHub-Git泄露-Log

前言

以前虽然学过git,但是时间久远,而且没有和安全方面联系起来。这道Git泄露题可以说是比较简单,帮助我慢慢架构起git的知识。

题目背景

当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。

知识点

做这道题需要简单知道git的相关命令,比如:

git log 显示从最近到最远的提交日志。
git diff 简单的来说就是查看不同,具体用法如下:
1. git diff:是查看working tree与index的差别的。
2. git diff --cached:是查看index与repository的差别的。
3. git diff HEAD:是查看working tree和repository的差别的。其中:HEAD代表的是最近的一次commit的信息。
git reset 可用于回退版本库

以及Githack(注意,githack需要在python2中才能使用,而且github上面有一个githack是不能用的,我一开始就下了那个不能用了结果弄了很久。)的相关用法。

WP

打开之后进行dirsearch扫描,发现存在git泄露,使用Githack

python2 githack.py http://challenge-20523a0b6899c975.sandbox.ctfhub.com:10080/.git/

之后进入githack下的dist里的本题的目录。
在这里插入图片描述
正常进入之后应该只有.log文件,我这里有其他的东西是因为我已经回退版本了,往下看就懂了。如果没有.log应该是被隐藏了。然后打开cmd或者bash都可,输入git log显示提交日志。
在这里插入图片描述
我们可以看到有三次操作,一次是init初始化现有仓库,经过这次命令就会产生.log文件。之后执行了add flag和remove flag。可以判断,flag应该是在add flag的那个版本,我们现在是在remove flag。所以,这题有两种解法,第一种是回退到之前的版本,git reset可以实现。第二种是直接查看add flag和remove flag这两个版本的不同,git diff可以实现。

方法一:

git reset --hard HEAD^

方法二:

git diff HEAD^

执行以上两种命令都可以成功获得flag,本题解出。

猜你喜欢

转载自blog.csdn.net/rfrder/article/details/108391077