1.题目

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

试试扫描后台目录,用御剑后台扫描珍藏版OK

题干提示用linux,kali linux平台有gobuster(但是扯淡的是2021版本里竟然没有安装)

扫描发现了.git目录,说明存在git本地版本库漏洞,flag就在这里。

2.知识点

git项目本地版本库漏洞利用

** 简要介绍git的目录结构 **
在一个目录中初始化一个仓库以后 , 会在这个目录下产生一个名叫 .git 的隐藏文件夹
这个文件夹里面保存了这个仓库的所有版本等一系列信息

** 简要介绍利用git的开发模式 **

一般情况下 , 开发人员为了让版本控制和网站部署比较方便 , 在开发的时候就会走这样的流程

  1. 初始化仓库 , 并将仓库托管在Coding或者Github上 , 便于远程协作/备份/部署
  2. 在本地进行网站开发 , 并定时提交commit , 并push到远程托管网站
  3. 当一个阶段的开发差不多的时候 , 需要远程登陆服务器 , 通过托管网站再将发行版网站pull到Web目录下
  4. 网站正常运行

这里当网站维护(开发)人员在从托管网站pull代码的时候 , 也会将这个储存了所有的版本信息的.git文件夹下载到服务器的Web目录下 , 这样的话 , 攻击者就可以利用这个目录 , 去下载git文件夹 , 就可以利用其中储存的版本控制信息 , 完全恢复网站后台的代码和目录结构 。

** 具体利用思路 : **

  1. 利用爬虫递归下载.git目录的所有文件
  2. 利用git命令对网站的commit历史进行查看
  3. 利用git命令对网站的源码进行恢复

** 具体操作 : **

  1. 在ubuntu下利用wget对该目录进行递归下载
wget -r -p -np -k http://www.xxx.com/.git/
--recursive(递归)
-k,  --convert-links(转换链接)
-p,  --page-requisites(页面必需元素)
-np, --no-parent(不追溯至父级)
  1. 下载完成后 , 进入下载的网站目录
  2. 利用命令 : git reflog 查看网站的提交记录
  3. 利用命令 : 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

 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐