0x00简介
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
0x01漏洞概述
在Gitlab 8.5-12.9版本中,存在一处任意文件读取漏洞,攻击者可以利用该漏洞,在不需要特权的状态下,读取任意文件,造成严重信息泄露,从而导致进一步被攻击的风险。
0x02影响版本
GitLab GitLab CE/EE >=8.5 and <=12.9
GitLab GitLab CE >=8.5,<=12.9
0x03环境搭建
环境:centos7搭建。这里以centos7为例安装,其他系统请参照以下链接
https://mirrors.tuna.tsinghua.edu.cn/help/gitlab-ce/
1.首先在/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
2.使用以下命令安装带漏洞版本的gitlab
yum makecache
yum install gitlab-ce-12.8.7-ce.0.el7
注:使用命令安装可能会非常的慢,这里使用rpm的方式安装
下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
选择下载漏洞版本,这里选择下载12.8.7
下载完成后使用rpm -i gitlab-ce-12.8.7-ce.0.el7.x86_64.rpm安装即可
下载完成后使用rpm -i gitlab-ce-12.8.7-ce.0.el7.x86_64.rpm安装即可
3.这里使用命令安装成功
4.在执行完成后,修改/etc/gitlab/gitlab.rb文件注释掉external_url 'http://gitlab.example.com'
5.保存退出后,使用命令gitlab-ctl reconfigure来进行安装,然后等待安装完成。
使用如下命令检测当前GitLab版本:
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
6.安装完成后,在浏览器直接访问IP即可
0x04漏洞复现
1.在首页随便创建一个账号,然后登陆
2.登录后创建两个project,名字随意
3.两个project创建完成后,在test1中创建一个issues。填入以下内容:
Payload:![a](/uploads/11111111111111111111111111111111/../../../../../../../../../../../../../../etc/passwd)
4.提交后,将这个创建好的issues move到前面创建好的test2中。
5.MOVE完成后,从test2中就可以看到passwd文件的连接地址,可以直接点击下载。
0x05修复建议
1.建议在官网升级至最新版本
参考链接:https://mp.weixin.qq.com/s/ZmzXk0C-o0AnBLzVMAhRJg