acseguin21/trust-boundary-ctf
GitHub: acseguin21/trust-boundary-ctf
这是一个基于浏览器的 CTF 演练环境,旨在通过复现 OAuth 令牌混淆与会话隔离失败漏洞,帮助安全人员理解 CVE-2025-49596 攻击模式。
Stars: 0 | Forks: 0
# 🐘 信任边界:MCP 会话隔离 CTF





**信任边界** 是一个基于浏览器的 CTF 实验室,围绕本地运行的 MCP 服务器中的真实会话隔离失败构建。该漏洞并非模拟——它在运行进程中执行。三个标志。仅限 DevTools。
## 攻击
一个共享的可变上下文对象。启动时设置的管理员凭据。部分覆盖它的用户请求——但从未清除重要内容。
```
flowchart LR
subgraph startup["🚀 Server Startup"]
A[Admin Agent]
A -->|credentials loaded| CTX
end
subgraph ctx["⚠️ Shared Context"]
CTX["identity ✓ set\npermissions ✓ set\ntoken ✓ set\nsession ✓ set"]
end
subgraph request["👤 User Tool Call"]
U[User Agent]
U -->|identity ✓ updated\npermissions ✓ updated\ntoken ✗ never reset\nsession ✗ never reset| CTX
CTX -->|response includes\nadmin residue| U
end
style ctx fill:#1a0a0a,stroke:#ff3333,color:#ff3333
style startup fill:#0a0e27,stroke:#4488ff,color:#00ffff
style request fill:#0a0e27,stroke:#ffaa00,color:#ffaa00
```
服务器从不报错。UI 报告一切正常。凭据隐藏在流量中的某处——找到它们。
## 场景
你是 **Elefunk** 的一名 SOC 分析师,正在响应 MDR 警报:
位于 `http://localhost:3000` 的内部代理控制台看起来正常。你的任务是确认隔离失败并找到它产生的三个标志——仅使用你浏览器的 DevTools。
## 三标志任务
| | 标志 | 难度 | DevTools 位置 | 方法 |
|--|------|-----------|-------------------|-----|
| 🟢 | 标志 1 | Easy | Network → Response Headers | 每个工具调用都会在响应头中泄露 admin token |
| 🟡 | 标志 2 | Medium | Network → WS → Frames | 页面加载时会到达两个 WebSocket 帧——其中一个 session ID 是错误的 |
| 🔴 | 标志 3 | Hard | Application → Session Storage | 特定的顺序 + 时序触发调试跟踪写入 |
所有标志均遵循 `CTF{...}` 格式。使用控制台底部的验证器提交。
## 设置
Node.js 18+。无需 Docker。无需环境变量。无需配置。
```
git clone https://github.com/acseguin21/trust-boundary-ctf
cd trust-boundary-ctf
npm install
npm start
```
打开 **http://localhost:3000** —— Elefunk Agent Console 将在等待。
## Purple Team 用途
**`SPOILERS.md`** 是讲师、检测工程师和 purple team 会议的配套文档。它包含:
- 逐行注释的漏洞代码
- 作为可工作 diff 的修复方案
- 带有谈话要点的逐步 flag 解析
- **KQL**、**Splunk SPL** 和 **Sigma** 中的检测规则
如果你是来玩的,请关闭它。如果你是来教学的,请打开它。
## 参考
- [CVE-2025-49596](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-49596) — 通过共享会话上下文导致的 MCP OAuth token 混淆
- [OWASP MCP Top 10 2025](https://owasp.org/www-project-mcp-top-10/) — MCP01: Token Mismanagement
- [Model Context Protocol 规范](https://spec.modelcontextprotocol.io)
*Swadee Security · 行动:象牙链*
标签:CVE-2025-49596, DevTools, GNU通用公共许可证, MCP, MITM代理, Model Context Protocol, Node.js, OAuth, Purple Team, SOC分析, 令牌混淆, 会话隔离失效, 前端安全, 安全实验室, 实战演练, 数据可视化, 漏洞复现, 网络安全, 自定义脚本, 身份验证绕过, 隐私保护