黑客如何渗透JSON Web Token?通过劫持Token修改密码?

相关阅读

视频讲解

JWT(Json Web Token)是常见的身份认证方式,如何通过篡改JWT中的payload,从而劫持、篡改账户密码?本期视频将带大家一探究竟

JSON Web Token

Json Web Token简称JWT,通常出现在请求头中,格式类似于

Authorization : bearer <Token>

其中<token>通常是三段的base64结构

在请求头里,通常为下面的样子

Authorization : bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

我们可以去jwt.io上查看示例,下面是<token>

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

也就是你可以理解为Header.Payload.Verify Signature,它们均是base64加密的,因此你可以单独对其进行解密

看下面的图就非常清晰了

图片[1]-黑客如何渗透JSON Web Token?通过劫持Token修改密码?-FancyPig's blog

我们会发现在Payload中会包含我们用户身份的信息,比方说name,那么设想一下,有些对安全没有进行足够校验的,是否可以通过修改name后面的名称,进行越权访问呢?譬如,我们将其修改为admin

图片[2]-黑客如何渗透JSON Web Token?通过劫持Token修改密码?-FancyPig's blog

然后我们重新覆盖请求头,是否会有奇效呢?

Authorization : bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6ImFkbWluIiwiaWF0IjoxNTE2MjM5MDIyfQ.T26Dm4buOBRdxNs58srk1l_N5y1Dxii9y-YMj-9J7mM

视频中就是通过类似的方式,修改请求头中的Authorization和Cookie中的token,最终可以修改管理员的密码,最终登录管理员账户

图片[3]-黑客如何渗透JSON Web Token?通过劫持Token修改密码?-FancyPig's blog
图片[4]-黑客如何渗透JSON Web Token?通过劫持Token修改密码?-FancyPig's blog
© 版权声明
THE END
喜欢就支持一下吧
点赞16赞赏 分享
评论 共7条

请登录后发表评论