赞
踩
Json Web Token(JWT)
JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在两个组织之间传递安全可靠的信息。
JWT是一个有着简单的统一表达形式的字符串:
头部(Header)
头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。 JSON内容要经Base64 编码生成字符串成为Header。
载荷(PayLoad)
payload的五个字段都是由JWT的标准所定义的。
签名(signature)
这个部分header与payload通过header中声明的加密方式,使用密钥secret进行加密,生成签名。 JWS的主要目的是保证了数据在传输过程中不被修改,验证数据的完整性。但由于仅采用Base64对消息内容编码,因此不保证数据的不可泄露性。所以不适合用于传输敏感数据。
首先,前端通过web表单将自己的用户名和密码发送到后端的接口。这一过程一般是一个HTTP POST请求。建议的方式是通过SSL加密的传输(https协议),从而避免敏感信息被嗅探。
后端核对用户名和密码成功后,形成一个JWT Token。
后端将JWT字符串作为登录成功的结果返回给前端。前端可以将返回的结果保存在localStorage或sessionStorage中,退出登录时前端删除保存的JWT即可。
前端在每次请求时将JWT放入HTTP Header中的Authorization字段。
后端校验前端传来的JWT的有效性。
验证通过后,后端使用JWT中包含的用户信息进行其他逻辑操作,返回相应结果。
————————————————
版权声明:本文为CSDN博主「kali_Ma」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kali_Ma/article/details/121609999
我们可以通过伪造jwt的方式来伪装以达成认证通过的目的,从而进一步入侵服务器
因为http传输过程中,base64编码中“=”。“+”,“/”等特殊符号通过url解码通常容易产生歧义,因此产生了与url兼容的base64 url编码
拼接完成后得到:
eyJhbGciOiIifQ.ewocc3ViHRocMTIzNDU2Nzg5MB0MChxuYW1lHToiSm9obiBEb2UiLAoiaWF0IjoxNTE2MjM5MDIyCn0.
tips:需要用.隔开
通过脚本对密钥进行爆破从而构造新的jwt达成伪造目的
爆破代码
脚本暂时未找到,待补充
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。