WebGoat-JWT最新版过关教程/帮你学习gwt逻辑越权漏洞原理(第六关和第十一关)

WebGoat-JWT最新版过关教程/帮你学习gwt逻辑越权漏洞原理(第六关和第十一关)

前言:可以下载一个灵境靶场,不需要复杂的安装环境,进入靶场看,

网址:https://github.com/414aaj/LingJing/releases/tag/0.4.7

  1. JWT 签名核心机制

JWT(JSON Web Token)由 Header.Payload.Signature 三部分组成,签名是保障令牌完整性与真实性的核心:

  • 作用:防止客户端篡改令牌内容,确保令牌在传输与存储过程中未被恶意修改
  • 常用算法
    • 对称加密:HMAC-SHA256(HS256)
    • 非对称加密:RSASSA-PKCS1-v1_5ECDSARSASSA-PSS
  • 关键原则令牌在交付客户端前必须签名,服务端接收后必须先验证签名再执行其他操作在完成搜索jwt密钥爆破脚本,尝试通关webgoat密钥伪造关卡,我们可以先试着了解一下,cookie,token,session通俗的说session,就是用户输入的账号号密码,在服务器,防止不明身份的用户执行违法的操作,但是用户的每一次操作不可能输入一次账号和密码于是有了token验证生成签名和时间戳等,确保身份的合法性Session:服务器存信息,给用户一个 “编号”(依赖服务器存储)Token:用户带信息,服务器只验真伪(不依赖服务器存储,更适合多服务器 / APP 场景)
  • 比如:1.攻击者拿到自己的 JWT:header.payload.signature
    1. 解码 payload 看到:{"user_id":123, "role":"user"}(普通用户)
    2. role 改成 "admin",重新编码 payload
    3. 构造新 Token:原header.篡改后的payload.随便填(甚至把 signature 删掉)
    4. 服务器收到后,直接解析 payload 就用,没验证签名 → 攻击者变成管理员。
    5. 认证方式Authorization 头携带 JWT 令牌,且令牌采用了 alg: none 无签名模式(从响应反馈可佐证)

靶场第六关:服务器没验证签名

“未签名 Token 提权”,

靶场第六关:翻译过后我们可以看出,这是一个可以投票重置的关卡,我们需要以一个普通用户的身份,行使管理员权限,造成水平越权

先登录一个普通的用户Tmo行使(重置投票),他会告诉我们:管理员的权限

打开用yakit抓包,看显示: "feedback": "Only an admin user can reset the votes",

所以我们只需要改变Cookie就可以了,打开:https://www.jwt.io/,这个网站可以对JSON WEB 解码并验证 JWT

运用解码网站,进行

进行base编码Cookie:access_token=ewogICJhbGciOiAibm9uZSIKfQ.ewogICJpYXQiOiAxNzU1MDczNDY5LAogICJhZG1pbiI6ICJ0cnVlIiwKICAidXNlciI6ICJUb20iCn0.; JSESSIONID=E414E813D2B635E7F35FD26AB0F1DF2C

使用Yakit:修改cookie后,Tom就有了管理员的权限,投票也被重置

靶场第十一关:时间戳与“none”

这关能简单,能用易理解,我们来尝试第13关,可以使用同样的方法

结账发现身份令牌无效,于是就想能不能让别人给我们付钱,我们只需要知道别人的身份令牌正好,这个网页的漏洞可以看到日志中有汤姆的身份令牌,那就尝试

抓包,修改

alg: none的解释

是 JSON Web Signature (JWS) 规范中定义的一种无签名算法,核心含义是:JWT(JSON Web Token)仅做 Base64 编码和结构化组织,不进行任何数字签名 / 验签,仅传递明文信息(Header + Payload),不保证数据的完整性、真实性和不可篡改。

时间戳

  • iat (Issued At):令牌签发时间,Unix 时间戳(秒)。
  • exp (Expiration Time):令牌过期时间,Unix 时间戳(秒)。通常服务器会拒绝当前时间晚于 exp 的令牌。
  • 你看到的像 1701234567 这样的数字,代表的是从 1970-01-01 00:00:00 UTC 到指定时间经过的秒数
  • 优点:不受时区影响(统一为 UTC),便于计算机存储和比较大小。

我们在对继续对第11关进行解答

Read more

Unitree机器人Python SDK终极指南:从零开始实现机器人控制

Unitree机器人Python SDK终极指南:从零开始实现机器人控制 【免费下载链接】unitree_sdk2_pythonPython interface for unitree sdk2 项目地址: https://gitcode.com/gh_mirrors/un/unitree_sdk2_python 想要用Python轻松控制Unitree机器人吗?unitree_sdk2_python为开发者提供了完整的Python接口,让机器人控制变得简单直观。无论你是机器人爱好者还是专业开发者,这篇指南都将带你快速上手。 🎯 为什么选择Unitree Python SDK? 核心价值 * Python原生支持:无需学习复杂C++,直接使用熟悉的Python语法 * 跨平台兼容:支持Linux系统,适配多种硬件环境 * 实时性能:基于DDS通信协议,确保控制指令的实时性 适用场景 * 机器人教学与实验 * 自动化测试与验证 * 算法开发与研究 * 应用系统集成 🚀 5分钟快速安装 环境准备 确保系统满足以下要求: * Python

【论文阅读33】-FR-LLM:采用信号到文本编码和自适应优化的用于联合故障诊断和 RUL 预测的多任务大型语言模型

😊文章背景 题目:FR-LLM: Multi-task large language model with signal-to-text encoding and adaptive optimization for joint fault diagnosis and RUL prediction 期刊:Reliability Engineering and System Safety 检索情况:11.0 作者:Yuming Lai a,b, Zhangjun Wu a,b, Mengyao Chen a,c, Chao Liu d, Haidong Shao 单位:合肥工业大学 发表年份:

OpenDroneMap (ODM) 无人机影像三维模型重建安装及使用快速上手

OpenDroneMap (ODM) 无人机影像三维模型重建安装及使用快速上手

1 文档概述 本文档是指导用户从零开始,使用 OpenDroneMap 对无人机采集的影像数据进行处理,生成三维点云、数字表面模型(DSM)、正射影像图(Orthomosaic)等成果。 本文档的预期读者为拥有无人机航拍影像(JPG/PNG格式)并希望进行三维建模的用户。 2.1 系统运行环境要求 - 操作系统:Windows 10/11, macOS, 或 Linux (推荐 Ubuntu)。 - CPU:多核心处理器(4核以上推荐,8核或更多更佳)(处理200张以上影像建议16GB+)。 - 内存 (RAM):至少 16GB,处理大面积区域建议 32GB 或以上。 - 硬盘空间:预留充足的存储空间。原始影像、中间文件和最终成果会占用大量空间。建议准备 影像大小的10-20倍

从零开始:Xilinx FPGA实现RISC-V五级流水线CPU手把手教程

从一块FPGA开始,亲手造一颗CPU:RISC-V五级流水线实战全记录 你还记得第一次点亮LED时的兴奋吗?那种“我真正控制了硬件”的感觉,让人上瘾。但如果你能 自己设计一颗处理器 ,让它跑起第一条指令——那才是数字世界的终极浪漫。 今天,我们就来做这件“疯狂”的事:在一块Xilinx FPGA上,用Verilog从零实现一个 完整的RISC-V五级流水线CPU 。不是调用IP核,不是简化版demo,而是包含取指、译码、执行、访存、写回五大阶段,并解决真实数据冒险与控制冒险的可运行核心。 这不仅是一次教学实验,更是一场对计算机本质的深度探索。 为什么是 RISC-V + FPGA? 别误会,我们不是为了赶潮流才选RISC-V。恰恰相反,它是目前最适合学习CPU设计的指令集。 * 开放免费 :没有授权费,文档齐全,连寄存器编码都写得明明白白。 * 简洁清晰 :RV32I只有40多条指令,没有x86那样层层嵌套的历史包袱。 * 模块化扩展 :基础整数指令够用,后续想加浮点、压缩指令、向量扩展,都可以一步步来。