API安全
01web应用程序
02HTTP协议
03API概述
04分类类型
05交换格式
06身份验证
07常见API漏洞
08crAPI靶场
09JWT
10OAuth 2.0身份验证
11GraphQL
12DVGA靶场
13服务器端参数污染
14API文档
15API Labs
16OAuth Labs
17GraphQL API Labs
18JWT Labs
-
+
首页
18JWT Labs
靶场地址:https://portswigger.net/web-security/all-labs#jwt ## 通过未验证的签名绕过 JWT 身份验证 任务:修改会话令牌访问管理面板`/admin`,然后删除用户`carlos`。 登录帐户:`wiener:peter` 1、在burp的应用市场中下载【JWT Editor】  2、登录系统后,在【http history】中发现有高亮部分,点击后发现高亮部分都是使用了JWT认证。  3、点击【/my-account?id=wiener】路径的请求包,发送到repeater模块中,在【JSON Web Token】模块中自动解码了JWT的头部和Payload部分。  4、将Payload部分的wiener换为administrator,路径修改为/admin  请求成功  5、在响应包的模块【render】中发现delete功能。  6、找到删除用户的链接,`/admin/delete?username=carlos`  7、删除成功   ## 通过有缺陷的签名验证绕过 JWT 身份验证 任务:修改会话令牌以访问管理面板`/admin`,然后删除用户`carlos`。 登录帐户:`wiener:peter` 1、使用账户登陆后,同样有高亮部分为JWT认证模式。  2、修改原有名称,改为administrator,再访问/admin路径。    报了401,缺乏目标资源要求的身份验证凭证。 3、原有的签名算法为RS256,现在修改`none`会怎么样呢? 如果服务端支持 `"alg": "none"` 且不做验证,攻击者就可以删除签名绕过验证。  然后在JWT字符中删除掉签名部分,保留点`.`。  4、找到删除用户链接。   5、删除成功。   ## 通过弱签名密钥绕过 JWT 身份验证 任务:暴力破解网站的密钥,获取密钥后,用它对修改后的会话令牌进行签名,访问管理面板的权限`/admin`,然后删除该用户`carlos`。 登录帐户:`wiener:peter` 1、修改Payload中的sub为administrator,然后访问`/admin`路径   2、复制JWT的值,通过kali中的hashcat破解密钥。 ```txt eyJraWQiOiIwZmRmYjNiYy1mMDE2LTQ5NDItYTEyNy05YWFmOWFhZjYxNTMiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsImV4cCI6MTc1NTA3NDAwOCwic3ViIjoiYWRtaW5pc3RyYXRvciJ9.X-jEPb4bwH7ybTwSCRWL4MoVm_6P1Eww2cOORLkZIvA ``` 字典:https://github.com/wallarm/jwt-secrets/blob/master/jwt.secrets.list 密钥为:`secret1` 3、伪造签名密钥,在【JWT Editor】插件中,选择新创建一对密钥。  4、点击生成。  5、将密钥`secret1`进行Base64编码后,替换掉生成的K值。  点击ok 6、返回响应包中的【JSON Web Token】选项卡,点击sign,选择生成的密钥。   7、再次选择发包,响应码为200,成功。  8、成功删除。     ## 通过 jwk 标头注入绕过 JWT 身份验证 任务:修改并签署一个 JWT,该 JWT 允许您访问 的管理面板`/admin`,然后删除用户`carlos`。 登录帐户:`wiener:peter` 1、登录账户后,观察请求包,发现当前的JWT签名算法为【RS256】。  2、同样在【JWT Editor】插件中新创建一个RSA的key。  点击生成后,再点击完成   3、返回请求包中,将payload中的sub修改为administrator  4、点击底部的【Attack】,选择**Embedded JWK**,出现提示时,选择新生成的 RSA 密钥,然后单击**OK**。  5、将路径修改为`/admin`,之后成功访问管理面板。  6、删除成功。   
毛林
2025年10月21日 20:07
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码