实验室:JWT身份验证通过JKU标头注入
从业者
该实验室使用基于JWT的机制来处理会话。服务器支持jku
参数JWT标题。但是,在获取密钥之前,它无法检查提供的URL是否属于受信任的域。
要解决实验/行政
,然后删除用户卡洛斯
。
您可以使用以下凭据登录到自己的帐户:维纳:彼得
解决方案
第1部分 - 上传恶意的JWK套件
在Burp中,从BAPP商店加载JWT编辑器扩展程序。
在实验室中,登录到您自己的帐户并发送后期获取 /my-Account
请求打burp burp。
在Burp Repeater中,将路径更改为/行政
并发送请求。观察到只有在登录为行政人员
用户。
去JWT编辑键在Burp的主标签栏中的标签。
点击新的RSA键。
在对话框中,单击产生要自动生成新的密钥对,然后单击好的保存密钥。请注意,您不需要选择一个键大小,因为这将在稍后自动更新。
在浏览器中,转到Exploit服务器。
更换内容身体带有空的JWK集的部分如下:
{“键”:[]}
回到JWT编辑键选项卡,右键单击您刚刚生成的键的条目,然后选择将公钥复制为JWK。
将JWK粘贴到钥匙
在漏洞服务器上的数组,然后存储利用。结果应该看起来像这样:
{ "keys": [ { "kty": "RSA", "e": "AQAB", "kid": "893d8f0b-061f-42c2-a4aa-5056e12b8ae7", "n": "yy1wpYmffgXBxhAUJzHHocCuJolwDqql75ZWuCQ_cb33K2vh9mk6GPM9gNN4Y_qTVX67WhsN3JvaFYw" } ] }
第2部分 - 修改并签署JWT
回到获取 /管理员
请求Burp Repeater,然后切换到扩展生成JSON网beplay体育能用吗络令牌消息编辑选项卡。
在JWT的标题中,替换孩子
参数带孩子
您已上传到利用服务器的JWK。
添加新jku
JWT标题的参数。将其值设置为在利用服务器上设置的JWK的URL。
在有效载荷中,更改子
索赔行政人员
。
在标签的底部,单击符号,然后选择您在上一节中生成的RSA键。
确保不要修改标头选择选项,然后单击好的。现在,修改后的令牌已使用正确的签名签名。
发送请求。观察您已经成功访问了管理面板。
在响应中,找到删除Carlos的URL(/admin/delete?用户名= carlos
)。将请求发送到此端点以求解实验室。
社区解决方案beplay维护得多久
Emanuele Picariello