web345(无加密)
进入后F12,发现提示/admin
要注意使用 url 访问网页时
/admin 表示访问 admin.php 文件
/admin/ 表示访问 admin/目录下的文件,默认是 index.php
很像文件夹,所以此处应该访问 /admin/
查看cookie
eyJhbGciOiJOb25lIiwidHlwIjoiand0In0.W3siaXNzIjoiYWRtaW4iLCJpYXQiOjE2MzI0OTc1MDksImV4cCI6MTYzMjUwNDcwOSwibmJmIjoxNjMyNDk3NTA5LCJzdWIiOiJ1c2VyIiwianRpIjoiMmUyODkyOTBkODdiZmRmN2UzNjI1NjU0MjJkMjQzYTcifV0
利用https://jwt.io/解码

alg为None,说明无加密,直接修改sub为admin,base64编码后传入cookie,访问/admin/即可
web346(修改签名算法)
JWT 支持将算法设定为 “None”。如果“alg” 字段设为“ None”,那么签名会被置空,这样任何 token 都是有效的。 设定该功能的最初目的是为了方便调试。但是,若不在生产环境中关闭该功能,攻击者可以通过将 alg 字段设置为 “None” 来伪造他们想要的任何 token,接着便可以使用伪造的 token 冒充任意用户登陆网站。
老规矩,看cookie
{
"alg": "HS256",
"typ": "JWT"
}
{
"iss": "admin",
"iat": 1632670820,
"exp": 1632678020,
"nbf": 1632670820,
"sub": "user",
"jti": "147cc3b129a041cdd38e3f127680d1e4"
}
将 Header 中的加密算法改为 none,利用python脚本
import jwt
# payload
token_dict = {
"iss": "admin",
"iat"

本文详细阐述了JWT(JSON Web Token)在安全方面的漏洞,包括无加密、算法篡改、弱口令、爆破和公私钥泄露等问题,并提供了攻击者的利用手段和防御建议。针对这些问题,攻击者可以修改JWT的签名算法、利用泄露的公私钥伪造令牌,甚至进行密钥混淆攻击。防御措施包括限制算法使用、加强密钥管理和提高签名算法安全性。
最低0.47元/天 解锁文章
1240

被折叠的 条评论
为什么被折叠?



