CTFHub Git泄露-log解题思路


一、什么是Git泄露?

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

二、进入环境

在这里插入图片描述

2.查看页面

在这里插入图片描述

3.使用dirsearch扫描目录

python3 dirsearch.py -u http://challenge-b20bc02a1f02c35f.sandbox.ctfhub.com:10080/

发现存在git泄露

在这里插入图片描述

4.利用GitHack工具扫描

python GitHack.py -u http://challenge-b20bc02a1f02c35f.sandbox.ctfhub.com:10080/.git

GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,还原重建工程源代码。

在这里插入图片描述

4.使用git log查看历史记录

可以看见文件有过三次操作,flag处于add flag版本中
得到flag有两种解法:
1.文件比对
2.退回版本

在这里插入图片描述

三、flag

1.使用git diff对比文件

①:git diff:当工作区有改动,临时区为空,diff的对比是“工作区与最后一次commit提交的仓库的共同文件”;当工作区有改动,临时区不为空,diff对比的是“工作区与暂存区的共同文件”。
②:git diff <分支名1> <分支名2> :比较两个分支上最后 commit 的内容的差别

使用命令:
git diff 8240595cecf9ebdd21b9c5a2ba6ef582efa071d2 c9d03e2c6e6de0422d7c8d624c66529a3bd1b9c6

在这里插入图片描述

得到flag:ctfhub{7695df0273bfd39a86c8ecd4}

2.利用git reset回退文件版本

reset --hard 会在重置 HEAD 和branch的同时,重置stage区和工作目录里的内容。当你在 reset 后面加了 --hard 参数时,你的stage区和工作目录里的内容会被完全重置为和HEAD的新位置相同的内容。换句话说,就是你的没有commit的修改会被全部擦掉。

使用命令:
git reset --hard 8240595cecf9ebdd21b9c5a2ba6ef582efa071d2

在这里插入图片描述
在这里插入图片描述

1)打开文件发现flag

在这里插入图片描述

flag:ctfhub{7695df0273bfd39a86c8ecd4}

在这里插入图片描述

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值