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

AI+AR深度解析:从原理到场景,揭秘增强现实的智能未来

AI+AR深度解析:从原理到场景,揭秘增强现实的智能未来

AI+AR深度解析:从原理到场景,揭秘增强现实的智能未来 引言 想象一下,未来维修复杂设备时,眼前会实时浮现操作指引;试穿新衣、摆放家具,无需实物即可预览真实效果。这并非科幻,而是人工智能(AI) 与增强现实(AR) 融合带来的革命性体验。AI为AR注入了“理解与思考”的能力,使其从简单的图像叠加,进化为能感知环境、理解内容、智能交互的下一代计算平台。本文将深入浅出地剖析AI+AR的底层原理、核心应用与未来市场,为开发者与爱好者提供一份全面的技术地图。 一、 核心揭秘:AI如何为AR装上“智慧大脑”? AI是AR实现精准、智能、沉浸体验的底层驱动力。其核心原理主要体现在以下三个方面。 1. 环境感知与理解:从“看到”到“看懂” AR设备需要像人一样理解周围环境,这依赖于一系列AI驱动的感知技术。 * 语义SLAM:传统SLAM(同步定位与地图构建)只能构建几何地图。结合AI物体识别后,升级为语义SLAM,

Chrome 开发者工具(DevTools)快速入门——前端必备技能

Chrome 开发者工具(DevTools)快速入门——前端必备技能

在前端开发中,Chrome 开发者工具(DevTools) 是我们排查问题、优化性能、理解浏览器行为最强大的助手之一。无论是想快速定位页面样式异常、分析接口请求,还是调试 JavaScript 逻辑,DevTools 都能提供直观高效的方式帮助我们“看清代码背后发生了什么”。 这篇笔记将带你快速入门,从最基本的面板功能到常用调试技巧,让你能在实战中灵活运用它,提升开发效率与问题解决能力。 1. 打开方式与放大缩小 1. 快捷键: * Windows/Linux:F12 或 Ctrl + Shift + I * macOS:Command + Option + I 1. 右键打开:在页面任意元素上右键 → “检查 (Inspect)” 2. 菜单打开:点击右上角 ⋮ → “更多工具” → “开发者工具” 在使用 Chrome 开发者工具时,可以通过 鼠标滚轮 快速调整界面缩放。

Actix-web 性能优化技巧:从原理到实践

Actix-web 性能优化技巧:从原理到实践

引言 Actix-web 作为 Rust 生态中性能最优秀的 Web 框架之一,其设计充分利用了 Rust 的零成本抽象和 Actor 模型的优势。然而,即使使用如此高性能的框架,不当的使用方式仍然会导致性能瓶颈。本文将深入探讨 Actix-web 的性能优化技巧,从底层原理出发,结合实际案例展示如何充分释放框架潜力。 核心优化原理 Actix-web 的性能优势源于其异步运行时和工作线程池的精心设计。它使用 Tokio 作为异步运行时,采用多线程模型处理请求。理解这一点对于优化至关重要:每个工作线程都有自己的 event loop,阻塞操作会直接影响该线程处理其他请求的能力。 性能优化的第一要务是避免在异步上下文中执行阻塞操作。常见的陷阱包括同步数据库查询、文件 I/O、CPU 密集型计算等。这些操作应该被妥善处理,要么使用异步版本,要么转移到专门的线程池中执行。 实践一:连接池优化 数据库连接是 Web 应用中最常见的性能瓶颈。合理配置连接池参数能显著提升吞吐量: useactix_web:

QWEN-AUDIO开源镜像免配置教程:5分钟搭建Web版语音合成平台

QWEN-AUDIO开源镜像免配置教程:5分钟搭建Web版语音合成平台 1. 这不是传统TTS,是能“呼吸”的语音系统 你有没有试过用语音合成工具读一段文字,结果听起来像机器人在念说明书?语调平、节奏僵、情绪空——明明技术很先进,却总差那么一点“人味”。 QWEN-AUDIO不是又一个参数堆出来的TTS模型。它基于通义千问最新发布的Qwen3-Audio架构,但做了关键升级:把“情感”变成可输入的指令,把“声波”变成看得见的动画,把“部署”压缩成一次点击。 这不是让你去配环境、调参数、改config的教程。这是一份真正意义上的免配置指南——你不需要懂CUDA版本,不用查显存是否够用,甚至不需要打开终端敲命令(当然,我们也会给你最简命令)。从下载镜像到点开网页播放第一句语音,全程控制在5分钟内。 适合谁看? 想快速验证语音效果的产品经理 需要给PPT加配音的运营同学 正在做AI应用demo的开发者 单纯好奇“现在的AI声音到底能多像真人”的普通人 前置知识?零。只要你能打开浏览器,就能用。 2.