JWT靶场通关(3关)

news/2024/7/23 9:33:42 标签: JWT, linux

启动环境

将文件拷贝到kali虚拟机的桌面,在终端中进入桌面,输入下面命令,安装靶场,端口指定为8888:

sudo java -jar webgoat-server-8.0.0.M17.jar --server.port=8888

如图,启动成功:
在这里插入图片描述

打开bp的内置浏览器,输入127.0.0.1:8888/WebGoat打开靶场网站:

在这里插入图片描述

注册一个账号:

在这里插入图片描述

注册成功后点击Broken Authentication中的JWT token,来到第一关:

在这里插入图片描述

第4关

点击第四关,这一关是一个投票界面,选择Tom用户,然后点击删除按钮,出现一段提示只有管理员可以重置该投票:

在这里插入图片描述

点击删除投票,并用bp抓到post请求包,发送到repeater模块,在cookie字段找到JWT
在这里插入图片描述

将这段JWT放到JWT解码网站中解码,发现payload载荷信息中用户是Tom,admin字段值是false:

在这里插入图片描述

将这段信息复制到base64加密网站中,将false改为true,并复制加密后除=外的base64密文,并替换原来的payload字段:
在这里插入图片描述

和修改payload方法一样,修改JWT头部的算法类型为none,让它不要加密,替换原来的payload字段:
在这里插入图片描述

将修改后的header和payload字段替换数据包中的cookie字段,注意加上点,这样后端才能识别,点击send发送,提示重置投票成功:

在这里插入图片描述

回到网页刷新,发现票数均变为1:

在这里插入图片描述

第5关

这关给出了JWT,要求修改exp并爆破密钥

在这里插入图片描述

复制这段JWT,vim在桌面新建一个JWT.txt文件,放入复制的密钥:
在这里插入图片描述

用下面命令爆破JWT的密钥,字典用1.txt:

hashcat -m 16500 JWT.txt -a 3 -w 3 1.txt

-a 3 代表蛮力破解

-w 3 可以理解为高速破解,就是会让桌面进程无响应的那种高速

JWT.txt 是我把题目要求破解的 token 保存到的文件

爆破成功,密钥为victory:
在这里插入图片描述

按照题目的要求,修改username为WebGoat,并修改时间戳:

在这里插入图片描述

输入爆破出的密钥:

在这里插入图片描述

将修改后的JWT提交后即可通关:

在这里插入图片描述

第7关

来到第7关,这一关要求冒充Tom用户为另一个无JWT的非法用户付钱

在这里插入图片描述

点击右下角的购买,提示没有JWT

在这里插入图片描述

用bp抓包,发送到repeater模块,发现该数据包有一个单独存放JWT的Authorization字段:

在这里插入图片描述

右键here,在新窗口打开,可以查看日志:
在这里插入图片描述

复制一个用户的token:

在这里插入图片描述

解码后发现是Tom用户的token:

在这里插入图片描述

将该token在数据包中替换之前抓到数据包的Authorization字段,发送后依然报错,提示我们在日志中找到的JWT已经过期:
在这里插入图片描述

复制Tom用户的exp字段,这里的一串数字就是payload的过期时间戳,复制到网站解码,显示过期时间是2018-5-13:

在这里插入图片描述

用一个新的时间戳:
在这里插入图片描述

替换原来的exp字段,加密后替换原来的payload,由于没有密钥,JWT头部也需要替换,修改后发送,发现提示成功:

在这里插入图片描述


http://www.niftyadmin.cn/n/5024644.html

相关文章

docker系列-报错以及解决指南

1. windows运行docker报错Windows Hypervisor is not presentDocker Desktop is unable to detect a Hypervisor.Hardware assisted virtualization and data execution protection must be enabled in the BIOS. Docker Desktop - Windows Hypervisor is not presentDocker D…

论文阅读之Learning and Generalization of Motor Skills by Learning from Demonstration

0、论文基本信息 DMP经典论文 论文题目:Learning and Generalization of Motor Skills by Learning from Demonstration 会议名称:2009 ICRA 论文作者:Peter Pastor, Heiko Hoffmann, Tamin Asfour and Stefan Schaal 作者简介:…

Excel 公式函数:学习基本示例

数据准备 对于本教程,我们将使用以下数据集。 家居用品预算 S / N项目数量价格小计价格适中吗?1芒果96002橘子312003番茄125004食用油565005汤力水133900 房屋建筑项目时间表 S/NITEM开始日期结束日期持续时间(天)1调查土地0…

Java的反射应用(Method和Class)

记录:473 场景:使用java.lang.reflect.Method和java.lang.Class类,根据Java反射原理实现使用指定字符串类名和方法名称,调用对应对象和对应方法。 版本:JDK 1.8。 1.使用Java反射调用指定类的指定方法 (1)参数说明…

【AI】机器学习——支持向量机(非线性及分析)

5. 支持向量机(线性SVM) 文章目录 5.4 非线性可分SVM5.4.1 非线性可分问题处理思路核技巧核函数特点 核函数作用于SVM 5.4.2 正定核函数由 K ( x , z ) K(x,z) K(x,z) 构造 H \mathcal{H} H 空间步骤 常用核函数 5.5 SVM参数求解算法5.6 SVM与线性模型关系 5.4 非线性可分SVM …

北斗导航 | 基于GPS/BDS多星座加权因子图优化的行人智能手机导航

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 基于GPS/BDS多星座加权因子图优化的行人智能手机导航 1、引言2、相关工…

LuatOS-SOC接口文档(air780E)--adc - 数模转换

常量 常量 类型 解释 adc.ADC_RANGE_3_6 number air105的ADC分压电阻开启,范围0~3.76V adc.ADC_RANGE_1_8 number air105的ADC分压电阻关闭,范围0~1.88V adc.ADC_RANGE_3_8 number air780E开启ADC0,1分压电阻,范围0~3.8V adc.ADC…

pandas 笔记:shift

用于将数据系列或数据框中的数据按指定的位置移动。这对于某些时间序列分析特别有用,例如计算数据的变化量或滞后值 1 对Series/DataFrame数据进行移动 1.0 原始数据 import pandas as pd import numpy as np df1pd.DataFrame(np.arange(12).reshape(3,4),column…