Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cve-2024-32002-poc — CVE-2024-32002概念验证:Git子模块路径注入漏洞。 | Kitploit
工具/GitHubGitHub/joaoleonello/cve-2024-32002-poc
漏洞分析漏洞利用Web安全渗透测试供应链安全学习与教育
GitHubjoaoleonello/cve-2024-32002-poc

cve-2024-32002-poc

CVE-2024-32002概念验证:Git子模块路径注入漏洞。

查看仓库
511个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

💥 CVE-2024-32002 – Git 子模块路径注入 PoC

动机

在攻克 Hack The Box 平台的 Compiled 靶机过程中,我遇到了一个涉及 Git 和子模块的奇怪行为。深入调查后,我发现了研究员 Amal Murali 撰写的 这篇精彩文章,其中详细介绍了通过 .gitmodules 进行路径注入的技术。在此基础上,我决定研究 CVE-2024-32002 并创建一个能展示该漏洞实际影响的实用 PoC。

🧠 漏洞概述

CVE-2024-32002 利用了 Git 中与子模块路径解析相关的严重缺陷。Git 允许仓库包含在 .gitmodules 文件中定义的子模块,并指定其路径和 URL。该漏洞出现在路径被操纵以指向 .git 目录内部时,.git 目录存储了仓库的元数据和内部配置。

通过结合以下操作:

  • 操纵 .gitmodules 将路径设置为 A/modules/x
  • 创建符号链接 a → .git

…Git 会被欺骗,将 A/modules/x 解析为 .git/modules/x,即 位于内部 .git 目录内。这使得攻击者能够注入任意文件,例如恶意的钩子(hooks),这些钩子可在 checkout、merge 或 clone 等合法操作中执行。

该漏洞代表了一个远程代码执行向量,在 CI/CD 环境、自动化流程或共享仓库中尤为危险。


⚙️ setup.sh 脚本演示了什么

此脚本自动化创建了一个易受攻击的环境,并重现了该缺陷的影响:

  1. 创建一个恶意子模块(hook-repo),其中包含一个 post-checkout 钩子,该钩子向 /tmp/teste.txt 写入内容。
  2. 初始化主仓库(main-repo) 并添加该子模块。
  3. 修改 .gitmodules 文件,将子模块的路径重定向到 A/modules/x。
  4. 创建符号链接 a → .git,使 A/modules/x 被解析为 .git/modules/x。
  5. 使用 git update-index --index-info 将恶意的 .gitmodules 注入索引。
  6. 进行一次合法的提交,模拟正常活动。
  7. 使用 --recursive 克隆该仓库(cloned-repo),初始化子模块。

如果成功,钩子将被执行,并且文件 /tmp/teste.txt 将被创建,内容如下:

root@kitploit:~
joao was here

🐳 Docker 环境

本仓库包含一个 Dockerfile,它:

  1. 安装 Git 2.45.0(易受攻击的版本)
  2. 创建一个普通用户(joao)
  3. 复制 PoC 文件
  4. 自动执行 setup.sh

🔧 如何复现

root@kitploit:~
docker build -t git-cve-poc .
docker run --rm -it git-cve-poc

🔐 影响与缓解措施

此漏洞影响早于 2.45.1 的 Git 版本。该缺陷已通过对子模块路径解析实施更严格的验证而得到修复。 使用子模块的仓库应进行审计,自动化环境应立即进行更新。

⚠️ 法律声明

本项目仅用于教育和研究目的。请勿在生产环境中使用。旨在展示该漏洞的技术影响并推广良好的安全实践。

下载工具
  • 将恶意钩子复制到 .git/hooks/ 并执行 git checkout HEAD 以触发漏洞。