Web|Java Token 伪造绕过

发布时间:2026/7/5 1:39:59
Web|Java Token 伪造绕过 一、前言本题是贴近 Java Web 后端开发的 CTF 入门题型和 Servlet 课程设计的购物商城鉴权逻辑完全一致。题目采用前后端分离架构放弃了传统的 Filter 过滤器在每个接口中独立通过请求头 Token 完成登录鉴权。本题考察开发者对自定义 Token 认证机制的理解以及可预测规则漏洞的利用方式非常适合新手学习 Web 认证漏洞基础原理。二、题目介绍题目靶机接口为购物车查询接口访问接口需要用户登录鉴权。后端未使用全局过滤器依靠请求头中的 Token 字段解析用户身份。题目泄露了 Token 工具类的核心生成规则Token 由固定前缀和数字 ID 拼接而成无加密、无随机盐值、无过期校验。管理员用户 ID 固定为 1000成功伪造管理员 Token 访问受限接口即可获取 Flag。三、考察知识点Java Servlet 无过滤器 Token 独立鉴权原理自定义 Token 规则可预测漏洞HTTP 请求头自定义字段伪造前后端分离项目登录认证安全缺陷四、解题思路首先分析题目泄露的 Token 校验逻辑明确 Token 的拼接规则确认 Token 由固定前缀 admin 和四位用户 ID 组成。其次根据题目给出的管理员 ID构造合法的管理员 Token。最后通过修改请求头携带伪造 Token绕过登录校验访问受限接口获取 Flag。五、详细解题过程第一步漏洞分析。后端鉴权流程为接收前端请求头中的 Token截取字段解析用户 ID以此判断用户登录状态。整个校验逻辑完全依赖固定拼接规则没有加密算法、没有随机因子、没有过期时间校验攻击者可以完全预测 Token 格式存在严重的身份伪造漏洞。第二步构造攻击载荷。根据题目规则管理员用户 ID 为 1000拼接得到合法管理员 Token 为 admin1000。该 Token 符合后端所有校验规则能够被正常解析为管理员身份。第三步携带 Token 发起请求。通过修改前端 Axios 请求拦截器自动在请求头挂载伪造 Token也可以使用 Postman 手动添加请求头 Token 字段保证所有接口请求携带合法身份凭证。第四步访问购物车受限接口后端成功解析 Token 并通过鉴权页面返回最终 Flagflag {Servlet_Token_Bypass_Success}。六、漏洞原理总结本次漏洞产生的核心原因是后端自定义 Token 设计不规范。开发者采用明文拼接方式生成 Token规则完全公开可预测没有加入随机 UUID、加密盐值和过期时间机制导致攻击者无需破解、无需爆破可直接伪造任意用户的身份凭证彻底绕过登录认证流程越权访问后台接口。七、安全修复建议第一摒弃明文拼接 Token 的生成方式使用 UUID 生成随机唯一 Token。第二为 Token 添加过期时间定期清理失效凭证。第三引入加密盐值对 Token 进行加密处理杜绝规则预测风险。第四统一封装公共鉴权方法规范接口校验逻辑提升系统安全性。