编程语言
首页 > 编程语言> > [HFCTF2020]EasyLogin(node.js的koa框架、jwt攻击方法)

[HFCTF2020]EasyLogin(node.js的koa框架、jwt攻击方法)

作者:互联网

1、node.js koa的主要框架目录
创建一个rest-hello的工程,结构:
在这里插入图片描述

2、jwt攻击方法
深入了解Json Web Token之概念篇
深入了解Json Web Token之实战篇
总的来说,jwt由三部分组成:Header.Payload.Signature。攻击的办法之一可以把header中alg字段更改为’none’,且Payload的secretid为空,即没有Signature
因为sid为空时,jwt将采用none algorithm解密,即对应了将alg='none’的加密

wp:

随便注册,登录
在这里插入图片描述

发现有三个字段
查看源代码,发现.js后缀的static/js/app.js文件,并没有发现什么
查看rest api–controllers/api.js
在这里插入图片描述

发现了都对jwt的认证
在这里插入图片描述
并且只有admin登录才能查看到flag
将刚刚登录界面的第三个字段authorization放到https://jwt.io/解密
在这里插入图片描述
然后更改Header中alg为none,Signature删空
Header:
{“alg”: “none”,“typ”: “JWT”}
Payload:
{ “secretid”: [],“username”: “admin”,“password”: “hhh”,“iat”: 1612970917}
两部分分别base64加密
eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyAgInNlY3JldGlkIjogW10sInVzZXJuYW1lIjogImFkbWluIiwicGFzc3dvcmQiOiAiaGhoIiwiaWF0IjogMTYxMjk3MDkxN30.
![在这里插
进入admin的hone,get flag即可得到flag

标签:node,none,EasyLogin,alg,jwt,js,admin,Signature
来源: https://blog.csdn.net/qq_44111753/article/details/113786815