发布时间:2026/8/21 15:32:42
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/8/21 15:27:42

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

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

2026/8/21 16:52:51

4 种场景,重新认识这款免费开源字体

4 种场景,重新认识这款免费开源字体 【免费下载链接】LxgwWenKai An open-source Chinese font derived from Fontworks Klee One. 一款开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。 项目地址: https://gitcode.com/GitHub_Trending/lx/Lxg…

2026/8/21 16:52:51

为什么 Linux 认不出你的 2.5G 网卡?三步装好 RTL8125 驱动

为什么 Linux 认不出你的 2.5G 网卡?三步装好 RTL8125 驱动 【免费下载链接】realtek-r8125-dkms A DKMS package for easy use of Realtek r8125 driver, which supports 2.5 GbE. 项目地址: https://gitcode.com/gh_mirrors/re/realtek-r8125-dkms 把一块 …

2026/8/21 16:52:51

3步免费解锁Elementor Pro全功能:PRO Elements极简上手指南

3步免费解锁Elementor Pro全功能:PRO Elements极简上手指南 【免费下载链接】proelements This plugin enables GPL features of Elementor Pro: widgets, theme builder, dynamic colors and content, forms & popup builder, and more. 项目地址: https://g…

2026/8/21 16:47:50

Unity IL2CPP 逆向实战:5 步把安装包还原成可读的 DLL 结构

Unity IL2CPP 逆向实战:5 步把安装包还原成可读的 DLL 结构 【免费下载链接】Il2CppDumper Unity il2cpp reverse engineer 项目地址: https://gitcode.com/gh_mirrors/il/Il2CppDumper 假设你刚接到一个 Unity 手游的逆向分析任务,把 APK 拆开之…

2026/8/21 13:13:49

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/20 20:11:18

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 0:03:13

Linux命令-uucico(UUCP传输程序)

Linux命令-uucico(UUCP传输程序) 🔰简介UUCP 体系简介 📖语法⚙️选项配置文件 💡示例示例 1:基本传输操作示例 2:主模式与从模式示例 3:调试与故障排查示例 4:UUCP 配置…

2026/8/21 0:03:13

Linux命令-uupick(UUCP文件接收工具)

Linux命令-uupick(UUCP文件接收工具)🔰简介uupick 在 UUCP 传输链中的位置📖语法⚙️选项交互命令💡示例示例 1:基本接收操作示例 2:仅处理来自特定系统的文件示例 3:完整 UUCP 文件…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/21 0:31:27

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…