CTF之路:git项目本地版本库(.git文件夹)漏洞利用
·
1.题目

BP监听数据包里有一个flag,base64试了一下,假的。

试试扫描后台目录,用御剑后台扫描珍藏版OK
题干提示用linux,kali linux平台有gobuster(但是扯淡的是2021版本里竟然没有安装)
扫描发现了.git目录,说明存在git本地版本库漏洞,flag就在这里。
2.知识点
git项目本地版本库漏洞利用
** 简要介绍git的目录结构 **
在一个目录中初始化一个仓库以后 , 会在这个目录下产生一个名叫.git的隐藏文件夹
这个文件夹里面保存了这个仓库的所有版本等一系列信息** 简要介绍利用git的开发模式 **
一般情况下 , 开发人员为了让版本控制和网站部署比较方便 , 在开发的时候就会走这样的流程
- 初始化仓库 , 并将仓库托管在Coding或者Github上 , 便于远程协作/备份/部署
- 在本地进行网站开发 , 并定时提交commit , 并push到远程托管网站
- 当一个阶段的开发差不多的时候 , 需要远程登陆服务器 , 通过托管网站再将发行版网站pull到Web目录下
- 网站正常运行
这里当网站维护(开发)人员在从托管网站pull代码的时候 , 也会将这个储存了所有的版本信息的
.git文件夹下载到服务器的Web目录下 , 这样的话 , 攻击者就可以利用这个目录 , 去下载git文件夹 , 就可以利用其中储存的版本控制信息 , 完全恢复网站后台的代码和目录结构 。** 具体利用思路 : **
- 利用爬虫递归下载.git目录的所有文件
- 利用git命令对网站的commit历史进行查看
- 利用git命令对网站的源码进行恢复
** 具体操作 : **
- 在ubuntu下利用wget对该目录进行递归下载
wget -r -p -np -k http://www.xxx.com/.git/ --recursive(递归) -k, --convert-links(转换链接) -p, --page-requisites(页面必需元素) -np, --no-parent(不追溯至父级)
- 下载完成后 , 进入下载的网站目录
- 利用命令 :
git reflog查看网站的提交记录- 利用命令 :
git reset --hard [log hash]恢复到指定版本号 (一般如果只需要得到源码的话就恢复到最近的一次提交)
3.解析
#安装gobuster
sudo apt install gobuster
使用gobuster对网站后台进行扫描
匹配kali自带的目录字典 /usr/share/wordlists/dirb/common.txt
gobuster dir -u http://114.67.246.176:10491/ -w /usr/share/wordlists/dirb/common.txt

把git本地版本库下载到本地,递归下载网站/.git目录下的所有文件和文件夹
wget -r http://114.67.246.176:10491/.git

在网站目录/.git下,查看版本日志

日志里有好几个描述flag is here?挨个查看日志
使用git show commit_id 命令查看commit,标黄色的是commit_id
很快就找到了
git show 40c6d51

更多推荐
所有评论(0)