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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-29000-PoC — CVE-2026-29000 - pac4j-jwt (低于 4.5.9 / 低于 5.7.9 / 低于 6.3.3) JwtAuthenticator 身份验证绕过 PoC | Kitploit
工具/GitHubGitHub/dua2z3rr/cve-2026-29000-poc
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用CTF渗透测试身份验证学习与教育
GitHubdua2z3rr/cve-2026-29000-poc

CVE-2026-29000-PoC

CVE-2026-29000 - pac4j-jwt (低于 4.5.9 / 低于 5.7.9 / 低于 6.3.3) JwtAuthenticator 身份验证绕过 PoC

查看仓库
1218天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-29000 — pac4j-jwt JwtAuthenticator 认证绕过 PoC

CVE-2026-29000 的 PoC,它是 pac4j-jwt 中 JwtAuthenticator 组件的一个认证绕过漏洞(CVSS 10.0,严重)。

该脚本可以伪造一个令牌,以冒充任何用户和任意角色——无需知道任何秘密——只要目标暴露其 RSA 公钥。

[!WARNING] 本工具仅用于教育目的和授权的安全测试。它旨在解决 Hack The Box 机器 "Principal",并且默认值(iss、role、kid)是针对该机器定制的。请仅在拥有或明确授权测试的系统上使用。


漏洞详情

pac4j-jwt 版本 < 4.5.9、< 5.7.9 和 < 6.3.3 在处理加密 JWT(JWE)时,JwtAuthenticator 中存在一个逻辑缺陷。

当 JwtAuthenticator 解密 JWE 时,它尝试将内部令牌解析为 SignedJWT。如果内部令牌是无签名的 PlainJWT(alg: none),则 SignedJWT 对象返回 null,并且由于逻辑错误,签名验证路径被完全跳过。然后,认证器直接从未经验证的声明中构建用户配置文件。

换句话说,外部 JWE 加密——仅需要服务器的公钥——被误认为真实性证明,因此任何能读取公钥的攻击者都可以铸造完全受信任的令牌。

攻击链

  1. 从目标的 JWKS 端点(例如 /api/auth/jwks)获取目标的 RSA 公钥。
  2. 使用攻击者选择的声明(sub、role、iss等)伪造一个无签名的 PlainJWT(alg: none)。
  3. 将该 PlainJWT 包裹在加密到目标公钥的 JWE 信封中。
  4. 将生成的紧凑 JWE 作为 Bearer 令牌发送。存在漏洞的 JwtAuthenticator 解密它,跳过签名验证,并信任伪造的声明。

环境要求

  • Python 3.8+
  • 依赖项来自 requirements.txt:
root@kitploit:~
pip install -r requirements.txt

(requests、jwcrypto、cryptography)


使用方法

root@kitploit:~
python3 exploit.py -u <username> [options]

选项

您必须提供 --target(通过网络获取 JWKS)或 --jwks-file(本地提供 JWKS)。

示例

通过从目标获取公钥来伪造一个 admin 令牌,并将其打印到 stdout:

root@kitploit:~
python3 exploit.py -t http://target:8080 -u admin

伪造一个令牌,然后自动测试它是否对受保护端点有效:

root@kitploit:~
python3 exploit.py -t http://target:8080 -u admin \
    --verify-endpoint /api/settings -v

使用本地保存的 JWKS 并将令牌保存到文件:

root@kitploit:~
python3 exploit.py --jwks-file jwks.json -u admin -o token.jwe

修复建议

将 org.pac4j:pac4j-jwt 升级到补丁版本:

  • 4.x 分支 → 4.5.9 或更新版本
  • 5.x 分支 → 5.7.9 或更新版本
  • 6.x 分支 → 6.3.3 或更新版本

许可证

基于 MIT 许可证 发布。

下载工具
标志描述默认值
-t, --target目标的基础 URL(例如 http://host:8080)—
--jwks-urlJWKS 端点路径/api/auth/jwks
--jwks-file从本地文件加载 JWKS,而不是从 --target 获取—
-u, --usernamesub 声明的值 (必填)—
--rolerole 声明的值ROLE_ADMIN
--ississ 声明的值principal-platform
--exp令牌有效期(秒)3600
--verify-endpoint用于测试伪造令牌的受保护端点(例如 /api/settings)—
-k, --insecure禁用 TLS 证书验证off
-o, --output将伪造的 JWE 写入文件而不是 stdoutstdout
-v, --verbose将伪造的 JWT 载荷打印到 stderroff