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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-18963 — CVE-2026-18963 的检测与验证工具,该漏洞为 Keycloak 重置凭据状态绕过漏洞。该工具可执行版本指纹识别、领域/客户端/用户枚举,并测试是否强制执行 action-token 前置条件,适用于授权评估场景。 | Kitploit
工具/GitHubGitHub/alt3kx/cve-2026-18963
侦察漏洞分析漏洞利用信息收集Web安全渗透测试身份验证
GitHubalt3kx/cve-2026-18963

CVE-2026-18963

CVE-2026-18963 的检测与验证工具,该漏洞为 Keycloak 重置凭据状态绕过漏洞。该工具可执行版本指纹识别、领域/客户端/用户枚举,并测试是否强制执行 action-token 前置条件,适用于授权评估场景。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

CVE-2026-18963 Keycloak Reset-Credentials 状态绕过检测器

https://github.com/user-attachments/assets/005fab89-339a-4e4e-881c-da6a626f6c9e

python3 kc-resetforge.py -h


usage: kc-resetforge.py [-h] [--target TARGET] [--targets-file TARGETS_FILE] [--port PORT] [--realm REALM]
                        [--client-id CLIENT_ID] [--username USERNAME] [--new-password NEW_PASSWORD] [--skip-enum]
                        [--enum-only] [--kc-version] [--kc-reset-link] [--corpus-dir CORPUS_DIR] [--label LABEL]
                        [--enum-realms] [--no-enum-realms] [--enum-clients] [--no-enum-clients] [--enum-users]
                        [--no-enum-users] [--realm-wordlist REALM_WORDLIST] [--client-wordlist CLIENT_WORDLIST]
                        [--user-wordlist USER_WORDLIST] [--enum-users-client-id ENUM_USERS_CLIENT_ID]
                        [--verify-login] [--no-verify-login] [--verify-client-id VERIFY_CLIENT_ID]
                        [--timeout TIMEOUT] [--request-delay REQUEST_DELAY] [--output-dir OUTPUT_DIR]
                        [--proxy PROXY] [-d] [-y] [--json-out JSON_OUT]

CVE-2026-18963 Keycloak recon + exploit framework (own infra only)

options:
  -h, --help            show this help message and exit
  --target TARGET       Single target: bare host/IP, host:port, or a full http(s)://host[:port] URL. Scheme and port
                        are auto-detected if omitted (tries https then http; defaults to 443/80 respectively).
                        Mutually exclusive with --targets-file.
  --targets-file TARGETS_FILE
                        Path to a file with one target per line, same flexible formats as --target ('#' comments
                        allowed). Runs recon+exploit against every target in turn.
  --port PORT           Override port for --target (or a fallback for --targets-file lines without their own port).
                        Per-line ports in --targets-file always take precedence.
  --realm REALM         Realm to target. If omitted, auto-selected from recon results.
  --client-id CLIENT_ID
                        OIDC client_id to use. If omitted, auto-selected from recon results.
  --username USERNAME   Username to target. If omitted, auto-selected from recon results.
  --new-password NEW_PASSWORD
                        Password to set for the target user (default: 'Test123!')
  --skip-enum           Skip recon entirely; --realm/--client-id/--username become required.
  --enum-only           Run recon and print results, but do not attempt exploitation.
  --kc-version          Only run the Keycloak version recon phase (fingerprint + corpus match + patch status) and
                        exit - skips realm/client/user enumeration and exploitation entirely. Works with both
                        --target and --targets-file.
  --kc-reset-link       Only check whether the self-service password-reset ('Forgot Password?' /
                        resetPasswordAllowed) flow is exposed, then exit - a single non-destructive GET, no username
                        needed. Auto-discovers realm/client via a light realm+client recon unless --realm/--client-
                        id are given explicitly. Skips exploitation. Works with both --target and --targets-file.
  --corpus-dir CORPUS_DIR
                        Directory of known-version fingerprints for exact version matching (default:
                        kc_version_corpus).
  --label LABEL         Save THIS target's fingerprint into the corpus under this version label instead of matching
                        an unknown version. Use on an instance of known version.
  --enum-realms         Enumerate realm names (default: on during recon).
  --no-enum-realms
  --enum-clients        Enumerate client IDs per realm (default: on during recon).
  --no-enum-clients
  --enum-users          Enumerate usernames per realm (default: on during recon).
  --no-enum-users
  --realm-wordlist REALM_WORDLIST
  --client-wordlist CLIENT_WORDLIST
  --user-wordlist USER_WORDLIST
  --enum-users-client-id ENUM_USERS_CLIENT_ID
                        Client used for the username-enumeration direct-grant probe (default: admin-cli).
  --verify-login        After a password change, confirm the new credentials via a password-grant token request
                        (default: on).
  --no-verify-login
  --verify-client-id VERIFY_CLIENT_ID
                        Client used for the verification password grant.
  --timeout TIMEOUT
  --request-delay REQUEST_DELAY
                        Seconds to wait before each request in the exploit chain (default: 0.4). Keycloak's login-
                        flow state can be timing-sensitive across the reset/restart/selector replay steps; a small
                        delay makes the chain more reliable. 0 to disable.
  --output-dir OUTPUT_DIR
  --proxy PROXY         Route through an HTTP(S) proxy: 'burp' (127.0.0.1:8080 shorthand), a bare host:port, or a
                        full http(s):// URL.
  -d, --debug           Verbose debug logging of requests/responses/enum probes
  -y, --yes             Skip the 'Continue with this target?' prompt. Required for non-interactive use (scripts,
                        --targets-file with multiple targets, CI).
  --json-out JSON_OUT   Write a JSON report of recon + exploit results to this path.

kc-resetforge — CVE-2026-18963 Keycloak recon + exploit tool (own infra only)

Usage
-----
Fully automatic (recon -> auto-pick target -> exploit -> verify):
    python3 kc-resetforge.py --target https://localhost:9990 --proxy burp -d

Recon only:
    python3 kc-resetforge.py --target https://localhost:9990 --enum-only -d

Version + patch-status check only, across many hosts:
    python3 kc-resetforge.py --targets-file targets.txt --kc-version

Skip recon, target directly:
    python3 kc-resetforge.py --target https://localhost:9990 --realm master \
        --client-id account --username admin --skip-enum

Requires: requests, beautifulsoup4, and optionally rich (pip install --break-system-packages)

漏洞摘要

字段值
CVECVE-2026-18963
严重性严重
CVSS9.1
CWECWE-640(弱密码恢复机制)
组件Keycloak — reset-credentials 认证流程
影响未认证、零交互账户接管(包括管理员账户)
修复版本Keycloak 26.7.2(上游)/ RHBK 26.4.15-1、26.6.6-1

技术细节

  • 根本原因: reset-credentials 流程中的状态验证不当。服务器会跟踪会话当前处于哪个步骤,但不会在允许流程推进到密码更新之前,独立重新验证通过电子邮件发送的 action-token 步骤是否确实已完成。
  • 前置条件: 无 — 无需认证、无需用户交互、无需事先访问权限。
  • 影响范围: 任何启用了“忘记密码”的 realm,版本低于 26.7.2。
  • 修复:
    • 上游 Keycloak 26.7.2
    • RHBK 26.4 → operator bundle 26.4.15-1 / 镜像 26.4-23
    • RHBK 26.6 → operator bundle 26.6.6-1 / 镜像 26.6-12
    • 临时缓解措施:按 realm 禁用“忘记密码”(Realm Settings → Login → Forgot password)

关于此工具

kc-resetforge 是一个检测/验证工具。它用于确认目标的 reset-credentials 流程是否正确强制执行 action-token 前置条件(已修补)或未强制执行(存在漏洞),供授权评估使用。下方链接的文章以适合公开披露的深度介绍了该机制和复现方法。

完整分析:Forging kc-resetforge: Turning CVE-2026-18963 Into a Repeatable Check

版本识别

kc-resetforge.py 无法直接询问 Keycloak“你是什么版本?”,因为不存在能在认证前回答该问题的端点。相反,它会为目标生成指纹(响应字段、静态资源哈希、favicon),并将其与你已标注已知版本的语料库进行比对。该指纹没有对应的语料库条目 = 无法确定确切版本,这是设计使然,而非缺陷。

为你能够访问的每个版本构建一次语料库:

python3 kc-resetforge.py --target https://known-26.6.2-host --kc-version --label 26.6.2
python3 kc-resetforge.py --target https://known-26.7.2-host --kc-version --label 26.7.2
[snip]
下载工具