实验室:JWT身份验证通过弱签名密钥旁路
从业者
该实验室使用基于JWT的机制来处理会话。它使用一个极弱的秘密钥匙来签名和验证令牌。这可以很容易地使用通用秘密列表。
要解决实验室,请首先蛮力该网站的秘密密钥。beplay体育能用吗获得此功能后,请使用它签署修改的会话令牌,该令牌使您可以访问Admin面板/行政
,然后删除用户卡洛斯
。
您可以使用以下凭据登录到自己的帐户:维纳:彼得
解决方案
第1部分 - 蛮力秘密钥匙
在Burp中,加载JWTBAPP商店的编辑扩展。
在实验室中,登录到您自己的帐户并发送后期获取 /my-Account
请求打burp burp。
在Burp Repeater中,将路径更改为/行政
并发送请求。观察到只有在登录为行政人员
用户。
复制JWT并蛮横的秘密。您可以使用hashcat进行以下操作:
hashcat -a 0 -m 16500 /path/to/jwt.secrets.lists.list
如果您使用的是HashCat,则将输出JWT,然后输出秘密。如果一切正常,这应该揭示弱秘密是Secret1
。
笔记
请注意,如果您多次运行命令,则需要包括- 节目
标志以再次将结果输出到控制台。
第2部分 - 生成一个锻造密钥
使用Burp解码器,Base64编码您在上一节中爆炸的秘密。
在Burp中,去JWT编辑键选项卡并单击新的对称键。在对话框中,单击产生以JWK格式生成新密钥。请注意,您不需要选择一个键大小,因为这将在稍后自动更新。
替换生成的值k
带有基本64编码的秘密的属性。
点击好的保存密钥。
第3部分 - 修改并签署JWT
回到获取 /管理员
请求Burp Repeater,然后切换到扩展生成JSON网beplay体育能用吗络令牌消息编辑选项卡。
在有效载荷中,更改子
索赔行政人员
在标签的底部,单击符号
,然后选择您在上一节中生成的密钥。
确保不要修改标头
选择选项,然后单击好的
。现在,修改后的令牌已使用正确的签名签名。
发送请求并观察您已成功访问了管理面板。
在响应中,找到删除Carlos的URL(/admin/delete?用户名= carlos
)。将请求发送到此端点以求解实验室。
社区解决方案beplay维护得多久
Emanuele Picariello