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

GLM-4.6V-Flash-WEB Web界面使用指南,拖图就出结果

GLM-4.6V-Flash-WEB Web界面使用指南,拖图就出结果 你不需要配置环境、不用写一行推理代码、甚至不用打开终端——只要把一张截图拖进浏览器窗口,几秒钟后,它就能告诉你图里写了什么、画了什么、哪里有问题。这不是未来预告,而是你现在就能在本地跑起来的真实体验。 GLM-4.6V-Flash-WEB 是智谱AI最新开源的轻量级视觉语言模型,专为Web端实时交互而生。它不像某些“实验室模型”那样只存在于论文和Benchmark表格里,而是真正做到了:部署快、启动快、响应快、上手更快。一块RTX 3090,一个浏览器,一次拖拽,结果即刻呈现。 本文不讲训练原理,不列参数表格,不堆技术术语。我们只聚焦一件事:怎么用好它的Web界面?从零开始,到稳定产出,每一步都清晰可操作。 1. 为什么说“拖图就出结果”不是宣传话术? 很多多模态模型标榜“支持图文理解”,但实际用起来才发现:要装依赖、改路径、调精度、修CUDA版本、

前端防范 XSS(跨站脚本攻击)

目录 一、防范措施 1.layui util  核心转义的特殊字符 示例 2.js-xss.js库 安装 1. Node.js 环境(npm/yarn) 2. 浏览器环境 核心 API 基础使用 1. 基础过滤(默认规则) 2. 自定义过滤规则 (1)允许特定标签 (2)允许特定属性 (3)自定义标签处理 (4)自定义属性处理 (5)转义特定字符 常见场景示例 1. 过滤用户输入的评论内容 2. 允许特定富文本标签(如富文本编辑器内容) 注意事项 更多配置 XSS(跨站脚本攻击)是一种常见的网络攻击手段,它允许攻击者将恶意脚本注入到其他用户的浏览器中。

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

目录 1. 打开浏览器开发者工具 2. 使用 Network 面板 3. 查看具体的API请求 a. Headers b. Payload c. Response d. Preview e. Timing 4. 实际操作步骤 5. 常见问题及解决方法 a. 无法看到API请求 b. 请求失败 c. 跨域问题(CORS) 作为一名后端工程师,理解前端如何调用接口、传递参数以及接收返回值是非常重要的。下面将详细介绍如何通过浏览器开发者工具(F12)查看和分析这些信息,并附带图片案例帮助你更好地理解。 1. 打开浏览器开发者工具 按下 F12 或右键点击页面选择“检查”可以打开浏览器的开发者工具。常用的浏览器如Chrome、Firefox等都内置了开发者工具。下面是我选择我的一篇文章,打开开发者工具进行演示。 2. 使用

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例)

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例) 前端开发中最令人头疼的莫过于那些难以定位的UI问题——元素错位、样式冲突、响应式失效...传统调试方式往往需要反复修改代码、刷新页面、检查元素。现在,通过Cursor编辑器集成的Codex功能,你可以直接用截图交互快速定位和修复这些问题。本文将带你从零开始,掌握这套革命性的调试工作流。 1. 环境准备与基础配置 在开始之前,确保你已经具备以下环境: * Cursor编辑器最新版(v2.5+) * Node.js 18.x及以上版本 * React 18项目(本文以Chakra UI 2.x为例) 首先在Cursor中安装Codex插件: 1. 点击左侧扩展图标 2. 搜索"Codex"并安装 3. 登录你的OpenAI账户(需要ChatGPT Plus订阅) 关键配置项: // 在项目根目录创建.