MASTG-Hacking-Playground 后端篇:Rails API 硬编码 JWT 密钥 12341234 的破解全过程

发布时间:2026/10/9 20:46:01

MASTG-Hacking-Playground 后端篇:Rails API 硬编码 JWT 密钥 12341234 的破解全过程 MASTG-Hacking-Playground 后端篇Rails API 硬编码 JWT 密钥 12341234 的破解全过程【免费下载链接】MASTG-Hacking-Playground项目地址: https://gitcode.com/gh_mirrors/ma/MASTG-Hacking-Playground想要彻底搞懂JWT 密钥破解的原理今天就带你把 MASTG-Hacking-Playground 这个移动安全测试靶场里的 Rails API 后端翻个底朝天。这个项目专为安全测试者设计后端藏着一个硬编码 JWT 密钥的真实漏洞KEY 12341234。我们将完整走一遍从发现密钥、伪造 token 到接管用户数据的Rails API 安全测试全过程零基础也能看懂什么是 MASTG-Hacking-PlaygroundMASTG-Hacking-Playground 是 OWASP Mobile Security Testing GuideMASTG配套的漏洞靶场用来练习移动应用安全测试技能。项目结构清晰Android/存在多种漏洞的 Kotlin 与 Java 应用iOS/带 JWT 与密钥链问题的 Swift 应用️Serverside/本次的主角——一个基于 Rails 5.1.4 的 Todo REST API后端 API 提供注册、登录、Todo 列表增删改查功能采用JWT 无状态认证非常适合用来练习API 认证绕过。第一步找到硬编码 JWT 密钥的源头要破解 JWT先要定位密钥在哪。在源码里搜索 JWT 相关逻辑很快就能发现关键文件Serverside/rails-api-original/app/lib/json_web_token.rb其中写着#HMAC_SECRET Rails.application.secrets.secret_key_base KEY 12341234问题一目了然开发者原本打算从secrets.yml读取安全的随机密钥secret_key_base却改成了注释直接写死了一个只有 8 位的弱密钥12341234。这就是典型的硬编码密钥漏洞。同时config/secrets.yml里明明有 64 位随机secret_key_base却被完全无视——安全机制形同虚设。第二步理解这套 Rails API 的 JWT 认证流程先弄懂认证逻辑才知道从哪下手。整套流程如下登录/注册POST /auth/login或POST /signup签发令牌AuthenticateUser验证密码后调用JsonWebToken.encode用密钥生成 token访问保护资源客户端在请求头带Authorization: Bearer token校验令牌AuthorizeApiRequest调用JsonWebToken.decode验签通过后返回用户对象相关代码文件Serverside/rails-api-original/app/controllers/authentication_controller.rb登录入口Serverside/rails-api-original/app/auth/authenticate_user.rb账号密码校验Serverside/rails-api-original/app/auth/authorize_api_request.rbtoken 解析与校验Serverside/rails-api-original/app/controllers/application_controller.rb全局授权钩子攻击面就在JsonWebToken.encode/decode——既然密钥已知我们就能自己铸造任何合法 token。第三步注册账号并拿到合法 Token先在本地把 API 跑起来Docker 或bundle install rails db:migrate均可然后注册一个新用户POST /signup 参数: nametestuser, emailtestexample.com, passwordfoobar返回结果里就带了一个auth_token形如eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo2LCJleHAiOjE1MTI1Mzk5MzF9.2BF5UVKk_FvfZtUQ4E2sT7uWqMCDhAqMRvFnqsqJ4PQ这个 token 由三段组成Header、Payload、Signature用.分隔。Header 说明算法是HS256Payload 里是user_id和过期时间exp签名则由密钥12341234计算而来。第四步伪造 JWT Token 接管任意用户现在进入核心环节——伪造 JWT token。既然密钥已知我们完全可以绕过登录直接冒充任意用户。先看看 Payload 里都有什么字段。伪造的思路是把user_id改成目标用户的 ID比如管理员的user_id: 1再用密钥12341234重新签名。用 Python 几行代码就能搞定import jwt, time payload {user_id: 1, email: adminexample.com, exp: int(time.time()) 86400} token jwt.encode(payload, 12341234, algorithmHS256) print(token)关键点在于服务端decode时只用同一个密钥验证签名不校验签发方所以任何人拿到密钥都能铸造出官方token。第五步用伪造 Token 调用受保护 API带着伪造的 token 去访问受保护接口例如GET /todos Authorization: Bearer 伪造的token正常情况下TodosController会返回当前用户的待办清单current_user.todos由于我们伪造的是user_id: 1服务端会直接返回该用户的数据——身份冒充成功更进一步还能对/todos、/todos/:id/items做任意增删改查实现完整的越权操作。这就是 JWT 密钥泄露带来的致命后果。第六步修复硬编码密钥的正确姿势问题找到了修复方案也很明确给新手三个建议密钥放入环境变量用ENV[SECRET_KEY_BASE]替代硬编码字符串部署时单独配置恢复使用 Rails secrets取消注释HMAC_SECRET Rails.application.secrets.secret_key_base让系统读取随机密钥定期轮换与最小化权限密钥定期更换且不要把弱密码、默认值带进生产环境修复后的校验逻辑应当类似HMAC_SECRET Rails.application.secrets.secret_key_base JWT.encode(payload, HMAC_SECRET) JWT.decode(token, HMAC_SECRET)这样攻击者无法预测密钥伪造 token 的难度将呈指数级上升。写在最后MASTG 靶场的意义通过本次对 MASTG-Hacking-Playground 后端 Rails API 的破解实战你应该掌握了三条核心知识✅ 如何通过源码审计发现硬编码 JWT 密钥✅ 如何利用已知密钥伪造 JWT token 绕过认证✅ 如何在真实项目中修复此类API 认证漏洞JWT 密钥破解是移动安全测试的高频考点也是 CVSS 高危漏洞的常见成因。建议你亲自 clone 这个靶场仓库地址https://gitcode.com/gh_mirrors/ma/MASTG-Hacking-Playground按照本文步骤实操一遍再对照Serverside/rails-api-original/目录下的源码逐行复盘。安全测试动手比看十遍更有效【免费下载链接】MASTG-Hacking-Playground项目地址: https://gitcode.com/gh_mirrors/ma/MASTG-Hacking-Playground创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/6 18:10:48

Rpisurv多画面轮播配置:让监控大屏自动循环切换

Rpisurv多画面轮播配置:让监控大屏自动循环切换 【免费下载链接】rpisurv Raspberry Pi surveillance 项目地址: https://gitcode.com/gh_mirrors/rp/rpisurv Rpisurv是一款免费开源的树莓派监控软件(Raspberry Pi surveillance)&…

2026/10/9 20:44:06

YOLOv8 浏览器端部署实战:从.pt到WebAssembly全链路指南

简介:本资源是一套面向计算机专业本科生与深度学习初学者的毕业设计/课程设计级项目,聚焦于将前沿YOLOv8目标检测模型封装为可交互的Web应用,解决算法落地难、界面缺失、部署门槛高等实际问题。压缩包共36个文件,涵盖14个核心Pyth…

2026/10/9 20:44:06

交通标志检测数据集实战:YOLO训练全流程解析

简介:面向交通标志检测与图像目标检测学习者和开发者,提供约7000张已标注的YOLO格式数据集,涵盖红绿灯等12个类别,并完成7:3训练集与验证集划分,可直接用于YOLO系列模型训练与评估。压缩包内共2000个文件,以…

2026/10/9 20:44:06

t3code:第三代代码规范工程化实践,一条命令统一质量检查

写代码这行当,干得越久越觉得,真正折磨人的不是写业务逻辑,而是“让一群人长期稳定地把代码写规范”。我前前后后折腾过格式化工具、静态检查、复杂度检测、提交信息校验,每一样单独拎出来都挺好用,但凑在一起就是一团…

2026/10/9 20:44:06

基于Neo4j社交兴趣推荐系统:图模型设计与Cypher源码拆解

简介:这份源码资源面向希望掌握图数据库应用开发与推荐系统设计的学习者,以Neo4j为核心数据库,构建了一套社交兴趣推荐系统。系统围绕用户、兴趣及社交关系三类数据元素展开,通过节点与关系建模形成社交网络图,并结合协…

2026/10/9 20:44:06

软件测试面试官视角:从背题到讲透原理的实战指南

做了这么多年软件测试,自己也从被面试的人变成了坐在桌子对面提问的人,说实话,每次看到“全网最全软件测试面试题”这种标题,我第一反应是:又有人要收割收藏了。但转念一想,能花时间整理这类资源的人&#…

2026/10/9 20:39:05

基于PyQt5和SQLServer的图书管理系统课设设计与避坑指南

简介:这份名为「数据库课设 基于PythonPyQtSQLServer的图书管理系统源码详细说明全部数据资料(高分项目).zip」的资源,是一套面向计算机相关专业在校学生的高分课程设计完整方案,可用于图书管理系统的课设、期末作业或…

2026/10/8 10:03:18

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/9 20:15:56

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 0:04:27

毕业论文初稿完成后首次进行AIGC疑似度自查的摸底与分流策略

毕业论文初稿完成后首次进行AIGC疑似度自查的摸底与分流策略当数万字的学位论文初稿经历开题、实验、问卷与多轮文献梳理最终成形时,绝大多数研究生都会面临一道全新的形式审查关卡:AIGC 疑似度排查。在高校毕业审核流程中,盲审前的文本检测通…

2026/10/9 0:04:27

食堂节能改造源头工厂,商用厨房设备焕新方案广受好评

商用厨房作为餐饮经营、单位供餐的核心后勤阵地,其设备配置、动线规划与运维体系直接决定后厨作业效率、运营成本与合规性。从基础的灶具、制冷存储设备,到油烟净化、水处理等配套系统,每一个环节的合理性都与食品安全、能耗管控、消防安全挂…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑