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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2021-21300 — 演示了CVE-2021-21300在大小写不敏感文件系统上通过恶意Git钩子实现任意代码执行,包括利用步骤和防御措施。 | Kitploit
工具/GitHubGitHub/sizvy/cve-2021-21300
漏洞分析漏洞利用Web应用程序漏洞利用论文与研究学习与教育二进制利用
GitHubsizvy/cve-2021-21300

CVE-2021-21300

演示了CVE-2021-21300在大小写不敏感文件系统上通过恶意Git钩子实现任意代码执行,包括利用步骤和防御措施。

查看仓库
111年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2021-21300:通过恶意 Git 钩子执行任意代码

📌 摘要

CVE-2021-21300 是 Git(2.14.2 至 2.30.1 版本)中的一个严重漏洞,允许攻击者通过利用符号链接和不区分大小写的文件系统在受害者机器上执行任意代码。


🧠 问题描述

  • 漏洞:通过恶意 Git 钩子执行任意代码。
  • 根本原因:不区分大小写的文件系统(例如 Windows/macOS)将 A/post-checkout 解析为 .git/hooks/post-checkout。
  • 影响:当用户克隆受感染的仓库时,攻击者可以注入并执行恶意钩子。

🔍 理论背景

原理

Git 允许用户自定义钩子存储在 .git/hooks/ 中。在不区分大小写的文件系统上:

  • 像 A/post-checkout 这样精心构造的文件夹可能会被解释为 .git/hooks/post-checkout。
  • 符号链接将 A/ 替换为 .git/hooks/,从而绕过限制。

利用方法

  1. 创建目录 A 和一个包含恶意命令的文件 A/post-checkout。
  2. 将该目录及其内容添加到 Git 暂存区。
  3. 删除该目录,并将 A 替换为指向 .git/hooks/ 的符号链接。
  4. 当 Git 执行 A/post-checkout 时,它实际上运行的是 .git/hooks/ 中的恶意文件。

⚠️ 触发条件

  • 不区分大小写的文件系统(Windows/macOS)。
  • 指向 .git/hooks/ 的符号链接。
  • 已启用全局 Git LFS 过滤器。
  • 受害者拥有执行恶意代码的权限。

🛠️ 攻击流程

恶意仓库生成

  • 创建 .gitattributes 以触发 LFS 处理 A/post-checkout。
  • 添加一个恶意脚本 A/post-checkout(例如,打印 "PWNED")。
  • 添加虚假文件 A/a、A/b 以使其看起来合法。
  • 将 A/ 替换为指向 .git/hooks/ 的符号链接。
  • 提交并推送更改。

🛡 现有防御措施

基于配置

  • 禁用符号链接跟随:
    root@kitploit:~
    git clone -c core.symlinks=true
    git config --system core.symlinks true
    

##💡 其他潜在防御措施

  • 使用 Git 别名自动化安全克隆

  • 创建目录。

  • 启用区分大小写(Windows):

    root@kitploit:~
    fsutil file setcasesensitiveinfo <DESTINATION FOLDER> enable
    
  • 克隆到该目录中。

  • 创建 Git 别名来自动化这些步骤,实现更安全的克隆。

下载工具