本仓库包含针对 pac4j-jwt(CVE-2026-29000)中身份验证绕过漏洞的概念验证(POC)。该漏洞允许攻击者通过在 JWE(JSON Web 加密)容器中嵌套 PlainJWT(使用 alg: none)来绕过签名验证。
该攻击利用服务器愿意解密使用其公钥加密的 JWE,并随后信任内部 JWT 而不验证其签名(前提是使用 none 算法)的特性。
确保已安装 Python 3 以及所需依赖:
pip install requests jwcrypto
使用 exp.py 从 JWKS 端点获取目标公钥,构造具有 ROLE_ADMIN 权限的恶意令牌,并将其封装在 JWE 中。
python3 exp.py <TARGET_URL> --user admin --role ROLE_ADMIN
示例:
python3 exp.py http://localhost:8080
获得伪造令牌后,使用 app.py 与受保护的 API 端点进行交互。
python3 app.py <TARGET_URL> <FORGED_TOKEN>
测试特定端点:
python3 app.py http://localhost:8080 <FORGED_TOKEN> --endpoint /api/users
exp.py:主要利用脚本,用于获取 JWKS、构造 PlainJWT 并伪造 JWE。app.py:用于针对已发现的 API 端点(/api/dashboard、/api/users、/api/settings)测试伪造令牌的实用脚本。本 POC 仅用于教育和授权安全测试目的。未经授权访问计算机系统属于违法行为。