Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Review.CVE-2023-5612 — CVE-2023-5612(GitLab CE/EE webhook SSRF)的概念验证与分析。包含 curl PoC 步骤以及用于验证和暴力破解内部 URL 的自定义 NSE 脚本。 | Kitploit
工具/GitHubGitHub/constantinefedorov/review.cve-2023-5612
漏洞扫描器网络映射漏洞分析漏洞利用Web安全渗透测试红队
GitHubconstantinefedorov/review.cve-2023-5612

Review.CVE-2023-5612

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →

CVE-2023-5612(GitLab CE/EE webhook SSRF)的概念验证与分析。包含 curl PoC 步骤以及用于验证和暴力破解内部 URL 的自定义 NSE 脚本。

查看仓库
51年前尚未审核
分享

CVE-2023-5612 – GitLab 通过 Webhook URL 的 SSRF(PoC 与分析)

📌 CVE 概述

  • CVE-ID: CVE-2023-5612
  • 严重程度: 高(CVSS:8.1 基础评分)
  • 类型: 服务端请求伪造(SSRF)
  • 组件: GitLab CE/EE Webhooks
  • 受影响版本: GitLab CE/EE < 16.2.7, 16.3 < 16.3.4, 16.4 < 16.4.1

🧠 描述

GitLab CE/EE 中的 SSRF 漏洞允许拥有有效项目 Maintainer 权限的攻击者通过恶意 webhook URL 向任意内部服务发送精心构造的请求。利用该漏洞可导致内部网络扫描、元数据泄露或进一步的横向移动。


✅ 利用条件

  • 攻击者拥有项目的 maintainer 权限
  • GitLab 未对 URL 钩子进行严格过滤或验证

⚙️ PoC 步骤(手动)

curl -s --header "PRIVATE-TOKEN: <TOKEN>" \
     --data-urlencode "url=http://127.0.0.1:8888" \
     http://<gitlab-host>:8080/api/v4/projects/<project_id>/hooks

🧱 环境与搭建

- Kali Linux 运行在专为测试部署的虚拟机中
- 通过 Docker 启动的存在漏洞的 GitLab CE 实例(端口 8080)
- GitLab 内部:
- 创建了测试项目
- 生成了具有 Maintainer 权限的 Personal Access Token(glpat-...)
- 为内部 SSRF 目标在 127.0.0.1:8888 上启动了最小化的 HTTP 服务

🧠 方法论

- 通过 curl 手动确认漏洞(见 PoC)
- 创建自定义 NSE 脚本:
gitlab-ssrf.nse:针对性的 SSRF 检测
gitlab-ssrf-brute.nse:自动枚举内部地址
- 使用 nmap -d 和 --script-trace 进行测试,以分析 API 行为并记录结果
- 从内部服务收到 401 Unauthorized 响应,表明 SSRF 成功
- 成功请求将返回 `201 Created` 或类似 `401 Unauthorized` 的错误,表明存在 SSRF 访问。

🛠 NSE 脚本(手动触发)

nmap -p 8080 \
  --script ./gitlab-ssrf.nse \
  --script-args gitlab.token="<TOKEN>" \
  <target-ip>

🧪 NSE 脚本(暴力枚举内部 URL)

nmap -p 8080 \
  --script ./gitlab-ssrf-brute.nse \
  --script-args gitlab.token="<TOKEN>" \
  <target-ip>

📈 结论

在针对漏洞 **CVE-2023-5612** 的研究过程中,成功复现了通过 GitLab CE API 访问内部地址的 SSRF 攻击场景。这说明了限制 webhook 能力并在服务端实施 URL 验证的重要性。

🎯 目标已完成:

  • SSRF 已确认
  • NSE 工具集已实现
  • 项目已记录并向社区开放

📂 仓库结构

.
├── gitlab-ssrf.nse             # 用于手动 SSRF 验证的 NSE 脚本
├── gitlab-ssrf-brute.nse       # 用于扫描内部主机/端口的 NSE 暴力脚本
├── screenshots/                # PoC 执行和漏洞确认的截图
└── README.md                   # 本文件

🖼 截图

  • ✅ 成功的 SSRF,返回 401 Unauthorized
  • 📜 脚本执行时的 nmap 日志
  • 📦 通过 API 添加 webhook

⚠️ 缓解措施

  • 将 GitLab 升级到 >= 16.2.7 / 16.3.4 / 16.4.1
  • 通过出口防火墙限制出站 HTTP
  • 对 webhook 使用内部允许列表

🧠 作者与联系方式

Pavel Topskiy
GitHub • 安全分析师,红队分析师


📅 时间线

  • 2025 年 6 月: PoC 与漏洞分析
  • 2025 年 6 月 5 日: 编写自定义 NSE 脚本和测试

🔐 免责声明

所有测试均在隔离的实验环境中针对故意存在漏洞的版本进行。请勿对未经授权的系统使用此内容。遵守道德黑客原则。

下载工具