WEB安全
00-HTTP协议
01-前端基础【HTML】
02-前端基础【CSS】
03-后端基础【PHP速通】
04-后端基础【PHP面向对象】
05-MySQL基础操作
06-前后端联动【代码练习】
07-SQL注入
08-SQL注入 Labs
09-跨站脚本攻击【XSS】
09-XSS Labs
10-CSRF
11-SSRF
12-XML 外部实体注入【XXE】
13-代码执行漏洞
14-命令执行漏洞
15-文件包含漏洞
16-文件上传漏洞
17-反序列化漏洞
18-业务逻辑漏洞
19-未授权访问漏洞集合
20-跨源资源共享【CORS】
21-SSTI模板注入
22-并发漏洞
23-点击劫持【Clickjacking 】
24-请求走私
25-路径遍历
26-访问控制
27-身份验证漏洞
28-WebSocket
29-Web缓存中毒
30-HTTP 主机头攻击
31-信息泄露漏洞
32-原型污染
33-API概述
34-API分类类型
35-API交换格式
36-API身份验证
37-API常见漏洞
38-crAPI靶场
39-JWT
40-DVGA靶场
41-服务器端参数污染
42-API Labs
43-OAuth Labs
44-GraphQL API Labs
45-JWT Labs
46-小程序抓包
47-云存储
48-对象存储OSS
49-存储桶
50-存储桶漏洞
51-STS访问OSS
-
+
45-JWT Labs
浏览
2
靶场地址: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、删除成功。   
毛林
2026年11月15日 18:27
转发文档
收藏文档
上一篇
下一篇
评论(0)
登录
后可发表评论
还没有评论,来抢沙发~
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
还没有评论,来抢沙发~