【网络安全】git信息泄露

一、概述

当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。

使用BugScanTeam的GitHack(.git 泄漏利用工具,可还原历史版本)

二、git命令使用

查看历史记录 git log

切换版本 git reset

对比两次提交 git diff

三、GitHack 使用

依赖

不需要安装其它 Python 库,只需要有 git 命令

使用方法

复制代码
python GitHack.py http://www.example.com/.git/

还原后的文件在 dist/ 目录下

工作流程

尝试获取 packs克隆

尝试目录遍历克隆

尝试从缓存文件(index)、commit记录中恢复

四、做ctfhub题,log

1、检测目标网址有git信息

2、使用GitHack破解

切换到dist目录,dit log查看提交日志。git diff 查看修改记录找到flag。

五、做ctfhub题,Stash

1、Stash了解

git stash 是 Git 中非常实用的命令,它的作用是将你当前工作区中未完成的修改"临时隐藏(寄存)"起来,让工作区瞬间恢复到上次提交(commit)的干净状态。这在你需要紧急切换分支去修复 Bug,但手头代码还没写完时特别有用。

(1)基础保存:将当前已跟踪文件的修改打包保存。

git stash

(2)查看寄存列表:当你寄存了多次修改后,可以查看当前的"寄存清单":

git stash list

(3)取回(恢复)修改

git stash pop恢复并删除

git stash apply只恢复

2、解题

按之前步骤使用GitHack获取git存储的源代码内容

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

使用git stash pop恢复,找到flag隐藏的文件查看