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

相关推荐
Radan小哥18 分钟前
Docker学习笔记—day007
笔记·学习·docker
Rsingstarzengjx44 分钟前
PS 笔记1
笔记
㱘郳1 小时前
软考软件设计师笔记
笔记·软件工程
嵌入式学习者。1 小时前
Eplan自学笔记1
笔记
PyAIGCMaster1 小时前
如何编译一个apk,我是新手
深度学习·学习
charlee441 小时前
Git使用经验总结8-Git仓库历史记录清除
git·powershell·敏感信息·仓库重置·历史重写
立志成为大牛的小牛2 小时前
数据结构——四十四、平衡二叉树的删除操作(王道408)
数据结构·学习·程序人生·考研·算法
风123456789~2 小时前
【OceanBase专栏】OceanBase 外部表实验
数据库·笔记·oceanbase
步达硬件2 小时前
【FPGA】FPGA初学者开发板选择及学习路线
学习·fpga开发
正经教主2 小时前
【Git】Git05-04:Github分支管理与协作流程
git·github