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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-72898-metabase-sqli — 检测器 + 针对 CVE-2026-72898(Metabase 通过 reset_password 的未认证 SQL 注入)的根因分析 | Kitploit
工具/GitHubGitHub/d-maggipinto/cve-2026-72898-metabase-sqli
漏洞扫描器漏洞分析漏洞利用Web安全渗透测试
GitHubd-maggipinto/cve-2026-72898-metabase-sqli

CVE-2026-72898-metabase-sqli

检测器 + 针对 CVE-2026-72898(Metabase 通过 reset_password 的未认证 SQL 注入)的根因分析

查看仓库
17小时48分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-72898 — Metabase 未认证 SQL 注入(检测器 + 分析)

CVE CVSS CISA KEV Product Type Auth License

Metabase 中通过 POST /api/session/reset_password 存在的未认证 SQL 注入。 CVSS 10.0,已列入 CISA KEV 目录,正在被野外利用。

密码重置请求体中的一个未声明字段以 HoneySQL 结构 而非经过验证的标识符到达应用数据库 用户查询。JSON 对象键成为 Clojure 关键字,因此 {"raw": "<SQL>"} 会编译为 HoneySQL 的 :raw 子句,并以 原样、无参数化 的方式输出 — 可对 Metabase 应用数据库执行任意 SQL,且无需任何认证。

本仓库包含一个 检测器(基于盲注、时间判断的裁决工具)以及一份源自厂商补丁的 根因分析。它旨在帮助防御者验证自身暴露面,并供安全研究人员研究该漏洞。它不会 窃取数据,也不提供武器化的管理员接管利用程序。

  • cve-2026-72898.py — 版本门控、失败即关闭的检测器(VULN / SAFE / UNTESTED)
  • TECHNICAL.md — 基于 v0.63.2 → v0.63.15 补丁差异的完整根因分析
  • lab/docker-compose.yml — 一个易受攻击 + 已修补的实例,用于复现

演示

CVE-2026-72898 检测器演示

检测器对受影响实例报告 VULN,对已修补实例报告 SAFE — 当请求被限流、缓存或从未到达 应用时,则报告 UNTESTED(绝不会误报 SAFE)。另提供一份 asciinema 录像 作为记录。

受影响 / 已修复版本

分支易受攻击已修复
0.58 / 1.58< 0.58.240.58.24
0.59 / 1.59< 0.59.210.59.21
0.60 / 1.60< 0.60.170.60.17
0.61 / 1.61< 0.61.110.61.11
0.62 / 1.62< 0.62.90.62.9
0.63 / 1.63< 0.63.50.63.5

安全公告:GHSA-vwf4-m7j8-wcjf。 如果您运行的是受影响版本,请立即升级 — 该漏洞正在被野外利用。

原语

root@kitploit:~
POST /api/session/reset_password HTTP/1.1
Content-Type: application/json

{"token":"1_00000000-0000-0000-0000-000000000000",
 "password":"Placeholder1!",
 "user-id":{"raw":"<ARBITRARY SQL>"}}

在应用数据库中产生:

root@kitploit:~
SELECT id, ... FROM core_user WHERE id = (<ARBITRARY SQL>)

该漏洞是盲注 — 重置流程会吞掉 SQL 错误,并在所有情况下返回相同的 400 {"errors":{"password":"Invalid reset token"}} — 因此检测器使用 时间盲注。完整的数据流和补丁差异请参阅 TECHNICAL.md。

用法

root@kitploit:~
python3 cve-2026-72898.py https://metabase.example.com                    # H2 应用数据库(默认)
python3 cve-2026-72898.py https://metabase.example.com --engine postgres  # pg_sleep 时间盲注
python3 cve-2026-72898.py https://metabase.example.com --json --trials 5

退出码 0 = VULN,1 = SAFE 或 UNTESTED。

为何失败即关闭

裁决结果为 VULN / SAFE / UNTESTED — 绝不会是"可能没问题"。该工具:

  • 拒绝在受影响版本范围之外触发(此处的否定描述的是版本,而非利用本身)— --force 可有意覆盖;
  • 每次请求轮换 X-Forwarded-For,因为重置端点会在 10 次尝试后限流,而限流响应是一个快速的 400,否则会伪装成否定结果;
  • 使用引擎无法优化掉的 H2 时间盲注(对 SYSTEM_RANGE 执行 sum(x)),并要求延迟同时超过绝对下限和对照组自身的时间波动;
  • 将受限流、缓存或传输失败的请求归类为 UNTESTED,而非 SAFE。

复现

root@kitploit:~
cd lab
docker compose up -d          # 3300 = 易受攻击的 v0.63.2,3301 = 已修补的 v0.63.15
# 等待约 90 秒完成首次运行的数据库初始化
python3 ../cve-2026-72898.py http://127.0.0.1:3300                 # -> VULN
python3 ../cve-2026-72898.py http://127.0.0.1:3301 --force         # -> SAFE

已验证:v0.63.2 显示 8 秒以上的延迟差,且随载荷行数线性扩展 (5M→0.85s,10M→1.96s,20M→4.61s,40M→7.97s);v0.63.15 无任何差异。

负责任使用

仅测试您拥有或明确获授权评估的系统。在大多数司法管辖区,未经授权访问 计算机系统属违法行为。本工具通过良性的时间探测来检测漏洞,并且有意不读取、修改或窃取数据。

许可证

MIT — 参见 LICENSE。

下载工具