RenanACS/meridian-bac-lab

GitHub: RenanACS/meridian-bac-lab

一个支持多业务领域切换的 Web 越权与 IDOR 漏洞实战训练靶场,通过贴近真实场景的挑战帮助安全学习者系统掌握 OWASP A01 类漏洞的发现与利用技术。

Stars: 0 | Forks: 0

# Meridian Lab — 越权与 IDOR 训练 一个故意带有漏洞、**支持领域插拔**的 Web 应用,用于练习越权(Broken Access Control,OWASP A01)和 IDOR,其场景与真实应用中的实际情况如出一辙——包含 UUID、连续的业务参考标识、可逆 token、Header 特性、GraphQL、批量赋值(Mass Assignment)等——而不是教科书式的 `/user/123`。 ## “支持领域插拔”是什么意思 一个引擎,三种外观。访问控制漏洞完全相同;只有业务对象发生了变化,因此你学到的是*技术*(能够迁移到真实目标上的东西),而不是某个特定的应用。 ``` npm install npm run fintech # NeoBank Console — statements, account holders npm run health # MedPort Portal — encounters, patients (PHI) npm run ecommerce # ShopLab Seller — orders, customers # 或:MERIDIAN_DOMAIN=health PORT=4000 node server.js ``` 然后打开 **http://localhost:4000** 并登录。确切的演示登录信息会在启动时打印在服务器控制台中: | 领域 | 品牌 | 登录邮箱 | 密码 | |-------------|-----------------|-----------------------|-----------------| | `fintech` | NeoBank Console | `alice@northwind.test`| `Sunshine2026!` | | `health` | MedPort Portal | `alice@cedar.test` | `Sunshine2026!` | | `ecommerce` | ShopLab Seller | `alice@acme.test` | `Sunshine2026!` | 你将从 **Alice** 的身份开始,她是*第一个*租户中一名低权限的 `member`。还存在另外两个租户(其中一个名为“Globex”,掌握着诱人的跨租户数据)。 业务对象的名称会根据领域发生变化: | 引擎概念 | fintech | health | ecommerce | |---------------------|----------------|------------------|------------------| | 账单记录 | Statement (STM)| Encounter (ENC) | Order (ORD) | | 账户 / 人员 | Account holder | Patient | Customer | | 共享文档 | Document | Report | Invoice | ## 通关指南 1. 像平常一样浏览应用——它只会调用*预期的* endpoint。 2. 在你的浏览器前挂上代理(**Burp**)并篡改请求。 3. 每个漏洞在被成功利用后,都会产生一个 flag `MW{...}`。 4. 在 **★ Missions** 页面提交 flag(或通过 `POST /api/scoreboard/submit`)。 5. 目标和提示位于 **`MISSIONS.md`** 中。那里没有通关教程。 ## 卡住了? 这里有一个加密的 **`SOLUTIONS.md`**,其中包含完整的通关指南。它包含剧透——只有在你想要答案时才打开它。(在导师模式下,除非你明确要求,否则我不会将其内容粘贴给你。) ## 布局 ``` server.js wiring + the edge-gateway middleware core/ store.js in-memory seed data (built from the active domain) auth.js session JWT, unsigned ctx cookie, middlewares challenges.js flag <-> weakness catalog routes/ auth, resources (IDOR), admin (vertical/BFLA), graphql, scoreboard domains/ fintech.js · health.js · ecommerce.js (the skins) public/ login + single-page UI lab-fs/ sandboxed fake filesystem (path-traversal target) ``` ## 重置 / 重启 ``` # Ctrl-C 停止 server,然后重新启动 — 全新数据,空的 scoreboard。 ```
标签:CISA项目, GNU通用公共许可证, IDOR, MITM代理, Node.js, OPA, Web安全, 数据可视化, 自定义脚本, 蓝队分析, 越权漏洞, 靶场