跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

CTFHub Git 泄露漏洞利用与 Flag 获取实战

介绍 CTFHub 中 Git 泄露漏洞的原理及危害,演示使用 GitHack 工具还原泄露的.git 目录内容。通过目录扫描发现目标站点存在.git 文件夹后,利用 GitHack 脚本克隆仓库,并通过 git log 对比差异或 git reset 回退版本的方式,最终获取包含 Flag 的历史提交记录。

MqEngine发布于 2026/3/30更新于 2026/10/25123 浏览
CTFHub Git 泄露漏洞利用与 Flag 获取实战

一、Git 泄露

在信息安全领域,.git 文件泄露是一种常见且危害较大的敏感信息泄露场景。它源于 Git 版本控制系统在项目中生成的 .git 目录被意外暴露在 Web 服务器上,攻击者可通过该目录获取项目的完整源代码、历史提交记录、配置文件等敏感信息。

1、.git 目录的作用与组成

Git 作为分布式版本控制系统,会在项目根目录生成 .git 目录,用于存储版本控制所需的所有元数据,包括:

  • 版本历史:所有提交记录(commits)、分支(branches)、标签(tags)等。
  • 文件快照:项目文件的不同版本数据(存储在 objects 目录)。
  • 配置信息:仓库配置(config)、当前分支指针(HEAD)、索引文件(index)等。

核心子目录及文件:

  • objects/:存储文件快照(blob 对象)、目录结构(tree 对象)、提交记录(commit 对象)等,是仓库数据的核心。
  • refs/:记录分支、标签对应的提交哈希(如 refs/heads/master 指向主分支最新提交)。
  • HEAD:指向当前所在分支的指针(如 ref: refs/heads/master)。
  • index:暂存区信息,记录待提交的文件状态。
  • config:仓库配置,可能包含远程仓库地址、用户名等信息。

2、.git 泄露的成因

  • 部署失误:开发或运维人员在部署 Web 项目时,未排除 .git 目录,导致其被上传至生产服务器的 Web 根目录(如 wwwroot、public 等)。
  • 权限配置不当:Web 服务器(如 Nginx、Apache)对 .git 目录未做访问限制,允许外部直接访问。
  • 目录遍历:服务器存在目录遍历安全风险时,攻击者可通过构造路径(如 ../.git/HEAD)绕过限制访问 .git 内容。

3、.git 泄露的危害

  • 源代码泄露:攻击者可还原项目完整源代码,分析业务逻辑,寻找 SQL 注入、XSS 等。
  • 敏感信息暴露:历史提交中可能包含数据库账号密码、API 密钥、配置文件等敏感数据。
  • 开发细节泄露:通过提交记录可了解开发习惯、项目架构,甚至获取内部开发文档。
  • 供应链风险:若项目依赖第三方库,攻击者可能通过源码分析依赖组件的缺陷。

二、GitHack 工具

1、工具简介

当网站服务器意外泄露 .git 目录(如可通过 http://目标域名/.git 访问)时,GitHack 可通过解析 .git 目录下的版本控制文件(如 config、index、objects 等),还原出项目的完整源代码,包括可能包含的 flag、配置文件、敏感逻辑等信息。

项目地址:https://github.com/BugScanTeam/GitHack

注意:不要下错版本,GitHub 上有多个同名的 GitHack,下错了无法渗透成功。请确保使用 BugScanTeam 的版本。

2、下载安装

(1)下载安装 GitHack

GitHack 是一个 .git 文件泄漏利用脚本,它是一个.git 泄露利用脚本,通过泄露的.git 文件夹下的文件,重建还原工程源代码,可通过 Git 命令下载或者在官网下载源码。

① Git 命令下载
sudo git clone https://github.com/BugScanTeam/GitHack
② Web 页面下载

访问 GitHub 仓库页面下载源码。

(2)基本使用方法

进入到 GitHack 目录中,需要使用 python2 来运行脚本。

# 进入到目录文件夹
cd GitHack

GitHack 的使用方法中,必须存在目标 URL 这个参数:指定存在 .git 泄漏的网站 URL,需以 .git/ 结尾(若输入时未以 / 结尾,工具会自动补全)。例如:http://target.com/.git/ 是正确的格式。Githack 的使用方法如下所示,可快速利用 .git 泄露获取网站源代码。

# 使用方法
sudo python2 GitHack.py http://www.example.com/.git

其中 http://www.example.com/.git/ 是目标网站的 .git 目录 URL,执行该命令后,工具会尝试从目标 URL 还原 Git 仓库内容,还原后的文件会保存在当前目录下的 dist/ 目录中。

3、利用步骤

GitHack 工具可还原 .git 目录中的完整仓库,工具会自动从目标 .git 目录下载文件,还原后的项目存储在 dist/目标域名/ 目录中,包含完整源代码和版本历史,步骤如下所示。

# 安装 Git(工具依赖)
sudo apt install git # Ubuntu/Debian
# 克隆 GitHack 工具
git clone https://github.com/BugScanTeam/GitHack.git
cd GitHack
# 执行还原(目标为存在.git 泄露的 URL)
python GitHack.py http://目标域名/.git/

三、渗透实战

1、打开靶场

打开关卡,提示信息为'当前大量开发人员使用 git 进行版本控制,对站点自动部署。如果配置不当,可能会将.git 文件夹直接部署到线上环境。这就引起了 git 泄露安全风险。请尝试使用 BugScanTeam 的 GitHack 完成本题',提示本关卡可以利用.git 泄露进行渗透测试。点击打开题目,此时系统自动创建 Docker 环境,蓝色部分的 URL 地址就是靶场环境。

打开靶场 URL,页面提示

目录

  1. 一、Git 泄露
  2. 1、.git 目录的作用与组成
  3. 2、.git 泄露的成因
  4. 3、.git 泄露的危害
  5. 二、GitHack 工具
  6. 1、工具简介
  7. 2、下载安装
  8. (1)下载安装 GitHack
  9. ① Git 命令下载
  10. ② Web 页面下载
  11. (2)基本使用方法
  12. 进入到目录文件夹
  13. 使用方法
  14. 3、利用步骤
  15. 安装 Git(工具依赖)
  16. 克隆 GitHack 工具
  17. 执行还原(目标为存在.git 泄露的 URL)
  18. 三、渗透实战
  19. 1、打开靶场

更多推荐文章

查看全部
  • 几种生成唯一序列号的常用方法
  • Qwen-Image-2512:消费级 GPU 上的高效 AI 绘画方案
  • 10 分钟本地部署 DeepSeek+Milvus,解决服务拥堵问题
  • Seedream 4.0 深度测评:AI 图像生成与企业级应用
  • QT(C++) 权限管理平台源码:功能与实现
  • 模拟算法实战:铺地毯、回文日期与扫雷详解
  • Linux 线程概念详解
  • FPGA 开发板 6 层 PCB 设计与绘制流程
  • Flutter sse_stream 鸿蒙适配:高并发背压处理与 AI 响应流优化
  • 大模型训练核心概念:预训练、后训练与持续训练详解
  • 鸿蒙金融理财全栈项目:运维监控、性能优化与安全加固
  • Python 实现基础学生信息管理系统
  • C++ std::make_unique 详解:安全创建 unique_ptr 的官方方法
  • 基于 SSM 和 Vue 的在线投稿系统设计与实现
  • Spring Boot 日志框架与配置详解
  • 本地部署 Stable Diffusion AI 模型实战指南
  • 昇腾 NPU 部署 Mistral-7B-Instruct-v0.2 模型实战指南
  • gRPC 跨语言 RPC 框架核心原理与选型指南
  • MySQL 动态分区管理:自动化与优化实践
  • System Verilog 实战指南:从基础语法到高级验证技术

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online