zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Git 源码泄露 && GitHack使用

2023-03-07 09:12:31 时间

Git 源码泄露 && GitHack使用

Git源码泄露原理

开发者通过git对站点进行版本控制,但可能因为一些粗心大意或者配置上的一些原因,可能会把 .git 文件也纳入了版本控制,导致每次git推送内容到站点是顺便也把.git也推送到了站点目录下。那为什么.git文件被推送上去,就会出现源码泄露呢?因为在git系统中所有的数据都是存在.git文件下的,该文件下有五个文件夹:

  • hooks : 用于存储shell脚本,当执行某些git指令后,会触发存储在该文件夹下指定的shell脚本
  • info : 用于存储该仓库的信息
  • logs : 用于记录分支提交的记录
  • objects : key-value 数据库
  • refs :用于记录每个分支的最新提交结点以及tags

在.git文件夹中,同样存在有一些文件,譬如HEAD、config、index等文件,其中HEAD文件用以记录当前仓库指向的项目提交结点,config文件中记录着仓库的配置信息。如果开发者失误把.git也推送上去了。那用Githack脚本工具即可完全恢复该文件夹内的内容。获取一些重要的信息,从而达到信息泄露的目的。

Git 的一些相关操作

当在Git官网下载安装好git后:

# 初始化 git仓库,会在当前文件下生成.git文件 && 克隆远程仓库
git init && git clone

# 查看每次推送的历史版本
git log
	
# 查看历史版本后,想恢复到某一个历史版本
git reset --hard 版本号

# 下载远程仓库的代码并合并 && 推送本地代码到仓库并合并
git pull  && git push

# 添加文件到暂存区 && 将暂存区内容添加到仓库中
git add && git commit

GitHack 的使用

通过使用dirsearch工具扫描到有.git目录是就可以确认存在其源码泄露了,然后使用GitHack脚本工具进行下载还原.git中的内容。(Githack是基于python2,其版本需大于2.7.9。 dirsearch是基于python3,其版本需大于3.7)。 GitHack 下载地址:https://github.com/lijiejie/GitHack CMD进入该工具的目录下后,使用命令运行: python2 GitHack.py http://abc.com:80/.git/ 若存在该漏洞,则会在运行结束后,在当前目录下生成一个文件夹,关于.git内的内容。通过git相关命令操作来回滚历史版本来获取相关信息。