当前位置: 首页 > news >正文

webgoat-jwt代码审计

代码段一 :

try {
   Jwt jwt = Jwts.parser().setSigningKey(JWT_PASSWORD).parseClaimsJws(accessToken);
   Claims claims = (Claims) jwt.getBody();
   String user = (String) claims.get("user");
   boolean isAdmin = Boolean.valueOf((String) claims.get("admin"));
   if (isAdmin) {
     removeAllUsers();
   } else {
     log.error("You are not an admin user");
   }
} catch (JwtException e) {
  throw new InvalidTokenException(e);
}

解析:

关键代码: parseClaimsJws(accessToken)

含义: 这个方法明确要求解析一个 签名的 JWS (JSON Web Signature)。

行为: 它会强制检查 Token 是否包含签名,并使用提供的密钥 ( JWT_PASSWORD ) 验证该签名。

后果: 如果攻击者发送一个没有签名的 Token(例如使用 alg: none ),或者签名不匹配,这个方法会直接抛出异常( JwtException ),代码会进入 catch 块(第 11-12 行)

代码段二:

try {
   Jwt jwt = Jwts.parser().setSigningKey(JWT_PASSWORD).parse(accessToken);
   Claims claims = (Claims) jwt.getBody();
   String user = (String) claims.get("user");
   boolean isAdmin = Boolean.valueOf((String) claims.get("admin"));
   if (isAdmin) {
     removeAllUsers();
   } else {
     log.error("You are not an admin user");
   }
} catch (JwtException e) {
  throw new InvalidTokenException(e);
}

解析:

关键代码: parse(accessToken)

含义: 这是一个通用的解析方法。它不强制要求 Token 必须是签名的。

行为: 它会根据 Token 头部的 alg 字段来决定如何解析。

后果: 如果攻击者构造一个 Token,将其头部的算法设置为 "alg": "none" , parse() 方法会接受这个 Token,并且 不验证签名(因为算法是 none)。这意味着解析过程会成功,不会抛出异常。

http://www.jsqmd.com/news/1035912/

相关文章:

  • DSpace issue1: Relationship Creation Allows Unauthorized Author/Profile Binding
  • Web安全实战:从路径穿越漏洞剖析任意文件读取原理与防御
  • paperxie智能写作解析:一文读懂论文降重AIGC率双项优化功能
  • ZigBee Green Power 3.0:超低功耗物联网设备的通信架构与实战
  • 南宁官方备案黄金回收商户名录|省心卖金全套流程 - 奢侈品回收评测
  • 2026株洲黄金回收权威指南:湘奢汇(天元店)领衔5大正规机构深度评测与避坑攻略 - 生活测评小能手
  • GEO整站优化服务商评测:五大机构全链路优化能力大比拼 - GEORANK
  • 2026 制造业:实力雄厚的无油空压机厂家与品牌解析 - 品牌发掘
  • 大件寄件上门取货哪家便宜?2026真实比价攻略 - 快递物流资讯
  • AI驱动多设备兼容性测试:从视觉差异检测到智能工作流重构
  • MC33901 CAN收发器评估板实战:从芯片功能到电路调试全解析
  • jwt的hs256爆破
  • 深度解析:Spek音频频谱分析工具的技术原理与实战应用
  • NSK LDFT3232-1.5 高刚性双螺母滚珠丝杠
  • 2026澳洲海运时效全解析:快慢差在哪?附靠谱服务商推荐 - 热点观察
  • DSpace issue2: EPerson byEmail Search Leaks Account Authorization Properties
  • 2026西安焊缝探伤检测权威机构排行 TOP 本地高频选择,无损检测 + UT+RT+PT 检测 附电话地址 - 中安检测集团
  • QQ截图独立版:终极免费截图工具完整使用指南
  • GPU 调度与 AI 推理优化:从独占模式到分时复用,算力资源的极致压榨
  • MCMS issue4: Content copy uses `cms:content:save` to read and clone source content
  • jwt修改kid指向已知文件加密绕过
  • Cursor Pro破解工具2025:解锁AI编程助手的完整功能体验
  • 2026深圳黄金回收领先者测评:权威夺冠,高价领跑 - 奢侈品回收测评
  • ATM网络APC流量控制算法:原理、参数计算与工程实践详解
  • 2026雅安焊缝探伤检测权威机构排行 TOP 本地高频选择,无损检测 + UT+RT+PT 检测 附电话地址 - 中安检测集团
  • 2026孝感焊缝探伤检测权威机构排行 TOP 本地高频选择,无损检测 + UT+RT+PT 检测 附电话地址 - 中安检测集团
  • 如何快速掌握编程:开源游戏化学习平台CodeCombat完整入门指南
  • 2026乌海焊缝探伤检测权威机构排行 TOP 本地高频选择,无损检测 + UT+RT+PT 检测 附电话地址 - 中安检测集团
  • 中国预制房出海对公文写作的启示:如何像搭积木一样“预制”高级材料?
  • 2026年泰州高压发电机组实力厂家推荐榜:口碑深耕/技术沉淀/应急保电领域标杆品牌深度解析 - 品牌发掘