0


JWT可能存在的漏洞(基础版)

hi!!!

1.什么是JWT?

*Json web Token,简称JWT,可以类似于升级版的token。*

通过数字签名的方式,以JSON对象为载体,在不同的服务终端之间安全的传输信息。

2.JWT有什么用?

JWT通常用于Web应用程序中的身份验证和授权目的。

一旦用户登录,后续每个请求都将包含JWT,系统在每次处理用户请求之前,都要先进行JWT安全校验,通过之后再进行处理。

3.JWT的格式。

JWT由Header、Playload、Signature三部分组成,由.拼接。****令牌最终的格式像这样: abc.def.xyz。

Header:

报头通常由两部分组成: Token的类型(即 JWT)和所使用的签名算法(如 HMAC SHA256或 RSA)。

Playload:

Token的第二部分是有效负载,其中包含声明。

声明是关于实体(通常是用户)和其他数据的语句。

有三种类型的声明: registered claims, public claims, and private claims。

Signature:

要创建Signature,您必须获取编码的标头(header)、编码的有效载荷(payload)、secret、标头中指定的算法,并对其进行签名。

4.JWT常见的漏洞类型。

**** 1. JWT身份验证:****

**** - 生成Token:使用JWT库(如jjwt)在服务器端生成包含用户信息的Token。****

**** - 客户端请求:客户端(如浏览器)向服务器端发送请求时,携带生成的Token。****

**** - 服务器验证:服务器端接收到请求后,验证Token的有效性,并提取Token中的用户信息。****

**** 2. 安全访问控制:****

**** - 权限控制:根据用户角色和权限设置,对用户访问的资源进行控制。****

**** - 资源过滤:对请求中的资源(如文件、数据库等)进行过滤,防止XSS攻击和SQL注入等安全问题。****

**** - 异常处理:对访问控制过程中出现的异常进行处理,记录日志,方便排查问题。****

**** 3. 身份攻击组件:****

**** - 防止中间人攻击:使用HTTPS协议,确保数据传输的安全性。****

**** - 防止重放攻击:在Token中添加过期时间,防止攻击者重放Token进行非法访问。****

**** - 防止拒绝服务攻击:对请求频率进行限制,防止攻击者通过大量请求占用服务器资源。****

5.JWT漏洞利用。

**** 空加密:****

**** 登录后获得Cookie中的JWT。****

**** Alg:none****

**** Payload:administrator(别的也行!!!)****

**** base64编码后替换原来的部分,然后删除签名部分,记得保留点号,保证格式正确,然后就按照第一个实验中的步骤删除用户即可。****

**** 弱密钥加密:****

**** 成功登录获得到JWT后进行解码查看,可以看到JWT使用的HS256。****

**** 可以使用python脚本,等工具尝试对密钥进行猜解。****

**** Kid注入:****

**** 通过kid可以进行rce 、 union注入......****

    ![](https://i-blog.csdnimg.cn/direct/b205343c9dfa442c9466385a500c7f18.png)

CTF——Node.js——前端JWT登录安全-伪造admin实现get flag 。

推荐:

小迪安全v2023 javaWeb项目_webgoat靶场2023-CSDN博客

https://www.bilibili.com/read/cv14490694/


标签: web安全 安全 网络

本文转载自: https://blog.csdn.net/2302_81328699/article/details/140734045
版权归原作者 火红的小辣椒 所有, 如有侵权,请联系我们删除。

“JWT可能存在的漏洞(基础版)”的评论:

还没有评论