MASTG-Hacking-Playground 部署指南:用 Docker 一键跑通 Rails 后端 API 的完整教程
2026/8/21 13:52:09 网站建设 项目流程

MASTG-Hacking-Playground 部署指南:用 Docker 一键跑通 Rails 后端 API 的完整教程

【免费下载链接】MASTG-Hacking-Playground项目地址: https://gitcode.com/gh_mirrors/ma/MASTG-Hacking-Playground

MASTG-Hacking-Playground 是 OWASP 移动应用安全项目(MAS)官方出品的安全测试练习场,里面内置了多款"故意留漏洞"的 Android 与 iOS 应用,专供开发者、安全研究人员和渗透测试人员练手。不过很多人第一次上手就卡在第一步:配套的 Rails 后端 API 怎么部署?别担心,本部署指南将手把手教你用 Docker 一键跑通这个 JWT 认证的 REST API 后端,让 App 与后端完美联动,快速进入漏洞测试环节。

一、MASTG-Hacking-Playground 是什么?🤔

简单说,它就是一个"移动安全靶场":

  • 提供 Java 与 Kotlin 两套Android 漏洞应用,覆盖 WebView 注入、SQL 注入、不安全存储、日志泄露等 MASTG 测试用例;
  • 提供 Swift 编写的iOS 漏洞应用(MSTG-JWT),用于练习 JWT 令牌相关的安全测试;
  • 附带一个基于Ruby on Rails 的 REST API 后端,为 App 提供登录、注册、Todo 列表等接口,是练习"客户端-服务端"完整安全链路的关键一环。

可以看到,应用把 OMTG 系列测试用例做成了菜单,点进去就能对每一项漏洞进行实战验证,非常适合培训、演练和自我提升。

二、Rails 后端 API 藏在哪个目录?📁

克隆项目后,后端代码位于Serverside/rails-api-original/目录,核心文件包括:

  • Dockerfile:官方提供的容器化构建脚本,基于alpine:3.6,内置 Ruby、SQLite 与 Rails 依赖;
  • config/routes.rb:定义全部 API 路由,包括signupauth/login以及 todos/items 资源;
  • app/controllers/:注册、登录、Todo CRUD 等控制器实现;
  • app/auth/AuthenticateUserAuthorizeApiRequest两个服务类,负责 JWT 签发与鉴权。

这套后端采用JWT 无状态认证,用户注册或登录后拿到auth_token,后续请求在Authorization请求头中携带即可,非常适合用来学习移动端 API 安全。

三、部署前准备:环境要求 ✅

在开始 Docker 部署之前,请先确认本机满足以下条件:

  1. 已安装 Docker(社区版即可),并确保 Docker 守护进程正常运行;
  2. 系统需支持 Linux 容器(macOS 建议使用 Docker Desktop);
  3. 无需预装 Ruby 或 Rails——这正是使用 Docker 的最大好处,所有依赖都在镜像内自动完成;
  4. 本机保留 3000 端口可用(或使用映射端口)。

如果你打算在本机直接运行(不通过 Docker),则需按官方说明安装rubyruby-bundlerbuild-essentiallibsqlite3-dev等依赖,且 Ruby 版本建议 2.5 左右、Rails 5.1.4。强烈推荐走 Docker 路线,省时省力。

四、Docker 一键部署:最快的构建启动方法 🚀

进入后端目录并执行构建命令:

$ cd Serverside/rails-api-original $ docker build -t rails-api .

构建过程会自动拉取alpine:3.6基础镜像,安装 Ruby、SQLite 及项目 Gem 依赖,耐心等待完成即可。构建成功后,启动容器:

$ docker run -p 80:3000 rails-api

这里把容器的 3000 端口映射到本机 80 端口(也可改成-p 3000:3000)。启动后打开浏览器访问http://127.0.0.1,看到 Rails 默认欢迎页,就说明Rails 后端 API 已经跑通了!🎉

五、验证 API:注册账号并获取 JWT 令牌 🔐

后端就绪后,先用注册接口创建一个测试账号:

$ curl -X POST http://127.0.0.1/signup \ -H "Content-Type: application/json" \ -d '{"name":"test","email":"test@email.com","password":"foobar"}'

成功后会返回 JSON 格式的auth_token与提示信息,例如:

{ "auth_token": "eyJhbGciOiJIUzI1NiJ9.xxx.yyy", "message": "Account created successfully" }

拿到令牌后,即可调用登录接口获取新令牌,并用它访问受保护的资源。JWT 的签发逻辑封装在app/auth/authenticate_user.rb中,配合config/routes.rb中定义的/auth/login路由,构成了完整的认证闭环。

六、测试 REST API 接口:Todo 增删改查 📋

有了令牌,就能测试 Todo 的 CRUD 接口了。以下命令中的your_token请替换为真实令牌:

# 创建 Todo $ curl -X POST http://127.0.0.1/todos \ -H "Authorization: your_token" \ -H "Content-Type: application/json" \ -d '{"title":"My first todo"}' # 查询 Todo 列表 $ curl http://127.0.0.1/todos -H "Authorization: your_token" # 更新 Todo $ curl -X PUT http://127.0.0.1/todos/1 \ -H "Authorization: your_token" \ -d '{"title":"Updated title"}' # 删除 Todo $ curl -X DELETE http://127.0.0.1/todos/1 -H "Authorization: your_token"

Todo 下还支持嵌套的 Items 接口(/todos/:id/items),用于测试更复杂的资源关系。所有接口均需携带令牌,未携带或令牌非法时会返回 401/422 等错误响应——这正是学习 JWT 鉴权漏洞的好素材。

七、让移动应用连上你的后端 📱

后端跑通后,Android Kotlin 应用与 iOS 应用都依赖这个 API。以 iOS 的MSTG-JWT项目为例,登录地址定义在LoginViewController.swift中:

let URL_USER_LOGIN = "http://127.0.0.1/auth/login"

只需把地址改成你本机的后端地址(模拟器可直连宿主机 127.0.0.1),即可让 App 完成登录并进入后续漏洞测试流程。Android 侧同理,在对应网络请求代码中修改 Base URL 即可。

八、常见问题与故障排查 🔧

1. 构建时提示网络超时多为拉取基础镜像或 Gem 依赖失败,可配置 Docker 镜像加速器后重试。

2. 端口被占用docker run报端口冲突时,换用-p 3001:3000等未占用端口,并同步修改 App 的访问地址。

3. 访问 80 端口无响应检查 Docker 容器是否正常运行:docker ps;若容器已退出,用docker logs查看启动日志定位错误。

4. 注册接口返回 422多为参数缺失,请确认请求体包含nameemailpassword三个必填字段。

总结

通过本文的部署指南,你已经用 Docker 在几分钟内完整跑通了 MASTG-Hacking-Playground 的Rails 后端 API,掌握了注册、登录、JWT 鉴权与 Todo 接口测试的完整流程。接下来就可以让 Android/iOS 靶机应用连接后端,逐项验证 WebView 注入、不安全存储、JWT 篡改等经典移动安全漏洞了。动手试试吧,越练越熟!💪

【免费下载链接】MASTG-Hacking-Playground项目地址: https://gitcode.com/gh_mirrors/ma/MASTG-Hacking-Playground

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询