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安全, 后端开发, 多模态安全, 安全教育, 安全靶场, 数据可视化, 无后门, 蓝队分析