.git泄露利用脚本工具githack使用

Curitaos / 2023-08-05 / 原文

前言   

首先我们要明白git(一种分布式版本管理工具),它适用于我们多人协作开发,我们每个人对开发项目进行了修改git都会记录并产生快照也就是我们所谓的版本,我们可以很方便的查看甚至是回溯到我们之前的版本(也许我们在开发过程中会出现许多的不可控事故)但前提是我们不能删除.git文件,关于git的一些使用我将会在后续的文章中详述。

而开发者在对代码进行发布时不正确的配置或者操作可能会吧.git文件意外上传,这也就是git泄露漏洞的成因,我们在扫描目录是发现有/.git文件的话就可以是明确发生了git泄露,这是我们就可以使用今天的主教githacker了,这是github上的一个开源项目,我们下载下来后就可以使用了注意我们这个工具要python2下才可以使用;下载可以看该文章GitHack在kali Linux环境下的下载与安装_想当白帽子的小白的博客-CSDN博客

工具原理简介

githack这个工具的实现分为三🙅步

1.获取/.git/index文件中的文件名;

2.获取/.git/objects中的文件内容

3.通过zlib解压缩获取到完整的文件

使用

使用比较简单:

python2 Githack.py url/.git 

他会自动将文件下载在dict文件夹下面。

而我使用kali的使用如下,由于没有配置好环境变量我们先cd 到Githack中,再使用终端完成相应命令下载泄露的git文件。

我安装的位置是/root 这也是root用户打开终端获取文件夹的默认的位置,同时我知道了/root/Desktop是我们管理员的桌面,再外面下载完成后可以使用mv命令将下载的文件移动到桌面 mv /dict/git文件名 /root/Desktop

.git目录结构补充

git目录:使用git init初始化git仓库的时候,生成的隐藏目录,git会将所有的文件,目录,提交等转化为git对象,压缩存储在这个文件夹当中。

COMMIT_EDITMSG:保存最新的commit message,Git系统不会用到这个文件,用户一个参考文件

config:Git仓库的配置文件

description:仓库的描述信息,主要给gitweb等git托管系统使用

HEAD:这个文件包含了一个档期分支(branch)的引用,通过这个文件Git可以得到下一次commit的parent

hooks:这个目录存放一些shell脚本,可以设置特定的git命令后触发相应的脚本;在搭建gitweb系统或其他

git托管系统会经常用到hook script(钩子脚本)

index:这个文件就是我们前面提到的暂存区(stage),是一个二进制文件

info:包含仓库的一些信息

logs:保存所有更新的引用记录

objects:所有的Git对象都会存放在这个目录中,对象的SHA1哈希值的前两位是文件夹名称,后38位作为对象文件名

refs:这个目录一般包括三个子文件夹,heads、remotes和tags,heads中的文件标识了项目中的各个分支指向的当前commit

ORIG_HEAD:HEAD指针的前一个状态