CTFHub Git泄露

Log

前言

根据题目描述,这个题目需要使用到工具 GitHack 来完成,而 CTFHub 上提供的工具需要在 python2 环境中执行,注意 python3 环境无法使用。

 GitHack准备(kali Linux)

打开虚拟机

sudo su

 以管理员的身份运行

git clone https://github.com/BugScanTeam/GitHack

 CTFHub Git泄露_第1张图片

 GitHack要在其目录下运行,而且环境也要python2的环境,python3的环境不行

CTFHub Git泄露_第2张图片

 解题

CTFHub Git泄露_第3张图片

 

python2  GitHack.py http://challenge-e1d56afd01c3bdf2.sandbox.ctfhub.com:10800/.git/ 

CTFHub Git泄露_第4张图片

 CTFHub Git泄露_第5张图片

 在终端打开目录路径,并使用git log命令查看其历史记录

CTFHub Git泄露_第6张图片

解释说明:

        remove flag 表示当前版本

        add flag 表示这次提交的版本

        init 表示初始的版本

 使用git diff命令可以对比提交版本,对比这三个版本发现在add flag中获得此题flag

git diff c4016e7a5c99106aefb974c030c8181d38696d42

CTFHub Git泄露_第7张图片

 ctfhub{1e566fa3df6e2a017942e11f}

Stash

进入环境

CTFHub Git泄露_第8张图片

 使用GitHack工具将题目源码下到本地目录

python2 GitHack.py http://challenge-9ffd02eaf677512a.sandbox.ctfhub.com:10800/.git/

 CTFHub Git泄露_第9张图片

 在GitHack工具的dist目录中打开刚才clone的网站目录文件

在终端打开clone的目录路径,并使用git log命令查看其历史记录

CTFHub Git泄露_第10张图片

使用git diff命令可以对比提交版本,发现在add flag版本中有一个文本文件

git diff a1e2bbe39ff8538f8f661e3944ba82e9e7393086

CTFHub Git泄露_第11张图片

 通过对git命令的学习和题目的提示,使用stash命令可以恢复文件

git stash pop  

CTFHub Git泄露_第12张图片

笔记

CTFHub Git泄露_第13张图片

Index

此题与之前题目类似,使用 GitHack 工具 clone 题目源码到本地目录,没想到查看本地目录文件时发现多了一个文本文件,文本文件中得到此题 flag 。

一来直接就使用GitHack工具clone题目源码到本地目录下

CTFHub Git泄露_第14张图片

 CTFHub Git泄露_第15张图片

 

在GitHack工具的dist目录中打开刚才clone的网站目录文件,发现一个文本文件

CTFHub Git泄露_第16张图片

 在终端打开clone的目录路径,并查看index file文件

git ls-files --stage

CTFHub Git泄露_第17张图片

 使用git log命令查看其历史记录

git log

CTFHub Git泄露_第18张图片

 使用git diff命令可以对比提交版本,发现在init版本中有一个文本文件,得到此题flag

CTFHub Git泄露_第19张图片

 

SVN泄露

先将dvcs-ripper工具在kali linux安装好

参考:dvcs-ripper安装教程-CSDN博客

 CTFHub Git泄露_第20张图片

使用dvcs-ripper工具将泄露的文件下载到本地目录中

./rip-svn.pl -u http://challenge-13535a84cf5cffc9.sandbox.ctfhub.com:10800/.svn 

CTFHub Git泄露_第21张图片

 在.svn文件夹中查看下载好的文件

ls -al

CTFHub Git泄露_第22张图片

 访问wc.db数据查看是否有此题flag,索引发现flag有两个文本文件可能存在flag

cat wc.db | grep -a flag
cat wc.db | grep -a ctfhub

CTFHub Git泄露_第23张图片

 使用curl命令访问可以文件检查网页源代码是否存在flag,检查均返回404,可能已经被删除了

CTFHub Git泄露_第24张图片

网页提示说flag在服务端旧版本的源代码中,那么应该检查一下pristine文件是否存放flag

cd pristine

CTFHub Git泄露_第25张图片

查看bf文件夹是否存在此题flag,发现查看文件夹中的.svn-base文件中不存在此题flag

CTFHub Git泄露_第26张图片

 同样的操作查看e8,最后发现flag

CTFHub Git泄露_第27张图片

HG泄露

CTFHub Git泄露_第28张图片

 要做这题要先下载关于HG泄露的漏洞利用工具

下载使用工具我建议在kali Linux上下载使用dvcs-ripper

解题思路

这题与之前的题目比较类似,同样使用 dvcs-ripper 工具下载泄露的网站目录,但是使用工具过程中出现了一些错误,导致网站源代码没有完整下载。正如网页显示内容中的提示所说,不好使的情况下,试着手工解决。那么此题目是让我们不要过度依赖工具的使用。使用 tree 命令列出下载到本地目录的所有文件。发现一个可疑的文本文件,查看文本文件发现历史记录中一个新增的 flag 文件。正则搜索相关文件发现可疑文本,使用 curl 命令检查发现此题flag。
 

使用dvcs-ripper下载泄露的文件

./rip-hg.pl -u http://challenge-0d3831f1cebeab8b.sandbox.ctfhub.com:10800/.hg

 CTFHub Git泄露_第29张图片

发现提示404报错和两处完成,可能是没有完整下载网站目录

使用tree命令列出刚刚下载的.hg网站目录,发现可疑的文本文件

CTFHub Git泄露_第30张图片

 查看可疑的文本文件是否存在此题flag,发现历史版本add flag

cat .hg/last-message.txt

 785f3ee449534c569650cabbc91cad2f.png

 发现历史版本可以使用正则表达式进行关键字查找

grep -a -r flag

CTFHub Git泄露_第31张图片

 使用curl命令检查一下data数据中的文本文件,发现此题flag

curl http://challenge-0d3831f1cebeab8b.sandbox.ctfhub.com:10800/flag_2556511088.txt

CTFHub Git泄露_第32张图片

 

你可能感兴趣的:(git)