Git泄露

一、漏洞形成原因

使用git版本控制系统(记录文件内容变化)时错误操作导致信息泄露

二、判断是否存在git泄露

使用dirsearch工具扫描后台,如果存在则会扫描出 .git 目录

dirsearch安装

进入root,输入

apt-get install dirsearch

出现如下图所示时成功

dirsearch常用命令

-u 指定url

-e 语言 指定网站语言,一般用-e*即所有语言

-i 保留响应状态码(不同状态码用逗号分隔,可指定范围,如-i 200,300-400)

-x 排除响应状态码(不同状态码用逗号分隔,可指定范围,如-x 400,400-500)

-w 指定字典

-r 递归目录(即可扫描新扫描出的目录下的目录)

-random-agents 使用随机User-Agent

三、漏洞危害

利用漏洞能下载.git文件夹下所有内容,如果其中包含用户名、密码等隐私数据,攻击者可以通过审计获取

四、git是什么

githack在kali中的安装

下载连接

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

可以直接使用链接在kali里面下载githack,如果行不通可以在windows中下载压缩包,然后解压后拖到kali虚拟机中

GitCode - 开发者的代码家园https://gitcode.com/BugScanTeam/GitHack/overview?utm_source=csdn_github_accelerator&isLogin=1然后进入GitHack-master文件(这里我改成了GitHack)

在这里打开终端输入命令

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

这样表示安装成功,需要在该目录下使用

1.结构

大体分为工作区、暂存区、本地仓库和远程仓库四个部分

工作区:.git所在文件夹

暂存区:一般存放在.git下的index(索引)中

本地仓库:储存分支信息

远程仓库:储存着各种项目例如国内的 gitee ,国外的 github , gitlab 等等

2.常用命令

http://t.csdnimg.cn/Gd8Fy

Github命令大全 - 知乎

git init 初始化一个git仓库

git add x.txt 添加文件

git commit -m "wrote a test file" 提交文件

git rm x.txt 删除文件

git commit -m "remove x.txt" 恢复文件

git stash pop 读取最近一次保存内容

git stash list 列出所有备份,可以利用这个列表决定从哪个地方恢复

git status 查看当前仓库状态和内存状态

git reset --hard 回退版本

git diff 对比

git log 显示到HEAD所指向的commit为止的所有历史记录,从最近到最远,可以看到3次

注:需在当前版本库和目录下使用

3.步骤

前几步大致相同,都是用dirsearch扫描是否存在git漏洞,然后打开githack连接,后面则是分为git log,git stash和git index几种

stash翻译是存放、隐匿,用于想要保存当前的修改,但是想回到之前最后一次提交的工作仓库时进行的操作.git stash将本地的修改保存起来,并且将当前代码切换到HEAD提交上。可以理解为将当前工作进度保存,暂存文件。通过git stash存储的修改列表,可以通过git stash list查看,git stash show用于校验,git stash apply用于重新存储,直接执行git stash等同于git stash save,执行 git stash pop 是恢复文件

index翻译为索引,可以理解为暂存文件,本地库中的索引index就相当于一个文件,默认储存在.git/index的路径下

练习

ctfhub技能树Log

首先用dirsearch -u 链接 判断是否存在git泄露,找到.git说明存在

用githack克隆目录

python2 GitHack.py 链接.git

会在dist中存放新生成的文件,用终端打开,题目写了log,就用git log查看提交历史记录,发现进行了flag的添加,也就是add flag

法一:

用git reset --hard 回退版本,打开文件夹可找到flag

法二:

用git diff进行文件对比可找到flag

ctfhub技能树stash

扫描发现存在git泄露

克隆

同上题一样用git log找到了add flag,但发现之前的两种方法都不能找到flag

根据题目提示用git stash pop 读取最近一次的保存内容,得到flag

ctfhub技能树index

打开环境后用dirsearch扫描,发现存在git泄露

用githack克隆目录

打开后即可找到flag

用git log查看发下指针指向add glag,所有目录文件夹中存有flag

相关推荐
帅云毅8 分钟前
Web3.0的认知补充(去中心化)
笔记·学习·web3·去中心化·区块链
豆豆8 分钟前
day32 学习笔记
图像处理·笔记·opencv·学习·计算机视觉
李菠菜27 分钟前
解决Windows系统下Git克隆时报错“unable to checkout working tree”的方法详解
windows·git
nenchoumi311929 分钟前
VLA 论文精读(十六)FP3: A 3D Foundation Policy for Robotic Manipulation
论文阅读·人工智能·笔记·学习·vln
island131436 分钟前
【git#4】分支管理 -- 知识补充
大数据·git·elasticsearch
凉、介36 分钟前
PCI 总线学习笔记(五)
android·linux·笔记·学习·pcie·pci
SuperSwaggySUP40 分钟前
4/25 研0学习日志
学习
码起来呗1 小时前
基于SpringBoot的高校学习讲座预约系统-项目分享
spring boot·后端·学习
Yurko131 小时前
【C语言】全局变量、静态本地变量
c语言·学习
鬼面瓷2 小时前
CAPL编程_03
前端·数据库·笔记