MyCyberPlayground/MCP-SecureBank-Web-CTF-Challenge-001
GitHub: MyCyberPlayground/MCP-SecureBank-Web-CTF-Challenge-001
一个面向初学者的 Web 安全 CTF 挑战项目,通过在模拟银行网站中寻找隐藏 flag 来学习浏览器开发者工具和常见 Web 安全漏洞。
Stars: 1 | Forks: 0
# MCP-SecureBank:Web CTF 挑战 001
**难度:** 初学者
**分类:** Web 基础
**Flag:** 12 个隐藏的 flag,格式为 `MCP{...}`
## 这是什么?
你下载了一个名为 **MCP-SecureBank** 的虚假在线银行网站。你的任务是找到散布在网站各处的 12 个隐藏 flag,它们可能隐藏在 HTML、JavaScript、CSS、cookie、API 等之中。
这是一个对初学者友好的挑战,旨在教你如何使用浏览器开发者工具,并像安全研究员一样思考。你需要的一切都已经在你下载的文件中了。
## 如何开始
根据你想要寻找的 flag 数量,你有两种选择。
### 选项 A:直接在浏览器中打开(12 个 flag 中的 11 个)
只需在浏览器中打开 `src/index.html` 即可。大多数 flag 都在静态文件中,无需任何设置即可直接发现。
### 选项 B:运行本地服务器(全部 12 个 flag)
这将解锁 Flag 6,因为它需要运行中的 API 服务器。
**要求:** Python 3(在终端运行 `python3 --version` 进行检查)
- **Mac / Linux:** 通常已经预装了 Python 3
- **Windows:** 如果没有,请从 [python.org](https://python.org) 下载
**步骤:**
1. 打开终端(Windows 上为命令提示符或 PowerShell)
2. 导航到此文件夹:
cd path/to/MCP-SecureBank-Web-CTF-Challenge-001
3. 启动服务器:
python3 setup/server.py
4. 打开浏览器并访问:
http://localhost:8000
5. 完成后,在终端按 `Ctrl+C` 停止服务器
## 你的目标
找到全部 12 个 flag。每个 flag 的样式如下:
```
MCP{something_hidden_here}
```
前往 MyCyberPlayground 上的 [flags.mycyberplayground.xyz](https://flags.mycyberplayground.xyz) 参与挑战。
## 你需要的工具
一切都内置于你的浏览器中,无需特殊软件。
| 工具 | 如何打开 | 用途 |
|---|---|---|
| **查看源代码** | 右键点击 → 查看页面源代码,或按 `Ctrl+U` | 查看任何页面的原始 HTML |
| **DevTools** | 按 `F12` | 你的主要黑客工具包 |
| **Console 选项卡** | F12 → Console | 运行 JavaScript 命令 |
| **Elements 选项卡** | F12 → Elements | 实时检查 HTML 和 CSS |
| **Application 选项卡** | F12 → Application | 查看 cookie 和本地存储 |
| **Network 选项卡** | F12 → Network | 监视 API 请求 |
## 入门提示
你不需要懂编程。你只需要保持好奇心并仔细观察。
- **查看每个页面的源代码。** 开发者有时会在代码中留下注释,而在发布前忘记删除它们。
- **打开浏览器控制台并探索。** 有些函数可供你调用,试着在任何页面的控制台中输入 `help()`。
- **尝试登录。** 如果你查看了源代码,凭据并不难找到。
- **登录后检查你的 cookie。** DevTools 中的 Application 选项卡会向你展示存储在浏览器中的所有内容。
- **阅读 `robots.txt`。** 这个文件告诉搜索引擎要避开哪些页面,这通常意味着它会暴露网站所有者想要隐藏的页面。
- **解码你找到的内容。** 有些数据是编码的,而不是加密的。如果你看到一长串字母和数字,它可能是 Base64,试着解码它。
## 每个 Flag 教会你什么
| Flag | 位置 | 演示内容 |
|---|---|---|
| 1 | HTML 源代码 | 生产代码中遗留的注释 |
| 2 | JavaScript 变量 | 存储在客户端的机密信息 |
| 3 | CSS 文件 | 对 CSS 属性的创造性使用 |
| 4 | 浏览器 cookie | 不安全的身份验证 cookie |
| 5 | 编码数据 | Base64 不是加密 |
| 6 | API endpoint | 暴露的内部 API endpoint |
| 7 | 管理面板源代码 | 绕过访问限制 |
| 8 | 仪表盘 HTML | 隐藏注释中的信息 |
| 9 | 浏览器控制台 | 生产环境中遗留的调试代码 |
| 10 | 转账功能 | 警告对话框中的敏感数据 |
| 11 | 控制台函数 | 隐藏的调试函数 |
| 12 | 调试模式 | 保持开启的开发者快捷方式 |
这些代表了真实的开发者会犯的实际错误。理解它们有助于你构建更安全的应用程序,并在测试他人系统时发现漏洞。
## 卡住了?
这完全正常。这里有一份待办清单供你逐一排查:
- [ ] 你是否查看了**每个**页面的源代码?(`Ctrl+U`)
- [ ] 你是否在每个页面都打开了 DevTools?(`F12`)
- [ ] 你是否尝试过使用 `admin` / `password123` 登录?
- [ ] 你是否在登录后检查了 cookie?
- [ ] 你是否访问过 `/robots.txt`?
- [ ] 你是否打开控制台并输入了 `help()`?
- [ ] 你是否尝试过在控制台中调用 `decodeSecret()`?
- [ ] 你是否尝试过直接访问 `/api/secret.json`?(需要选项 B 的服务器)
- [ ] 你是否在 Application 选项卡中检查了 localStorage?
- [ ] 你是否查看了 `/admin/` 页面的源代码?
## 关于道德的说明
你在这里学到的技术,如阅读源代码、检查 cookie、调用隐藏函数、发现暴露的 API,都是专业渗透测试人员使用的真实安全研究技能。
道德黑客与非法黑客之间的区别在于**授权**。这个挑战是你的沙盒。在互联网上,只能测试你拥有的系统,或者你拥有明确书面授权进行测试的系统。
祝你好运,黑客愉快。
*MyCyberPlayground:在实践中学习网络安全。*
*[mycyberplayground.xyz](https://mycyberplayground.xyz)*
标签:HTML/CSS, Python, Web安全, 后端开发, 多模态安全, 安全教育, 安全靶场, 数据可视化, 无后门, 蓝队分析