jeroenvdmeer/cyberescaperoom

GitHub: jeroenvdmeer/cyberescaperoom

一个以密室逃脱游戏形式介绍 OWASP Top 10 Web 应用漏洞的互动式安全教育平台,仅需浏览器开发者工具即可参与。

Stars: 4 | Forks: 0

# 网络安全密室逃脱 本项目旨在以趣味性的方式介绍 [OWASP Top 10 (2025)](https://owasp.org/Top10/2025/) 中的 Web 应用程序漏洞,且仅依赖现代 Web 浏览器提供的开发者工具。这使得任何对 Web 应用程序漏洞感兴趣的人都可以参与该网络安全密室逃脱,而无需使用拦截代理等专用工具。 ## 漏洞 网络安全密室逃脱包含多个挑战,促使用户利用前端 Web 应用程序和后端 API 中的漏洞。由于每个挑战都可以使用现代 Web 浏览器的开发者工具来解决,因此这些挑战严重依赖于在前端代码和 API 响应中寻找线索。完成所有关卡后,用户将体验到利用以下类别漏洞的过程: * [A01:2025-访问控制失效](https://owasp.org/Top10/2025/A01_2025-Broken_Access_Control/) * [A02:2025-安全配置错误](https://owasp.org/Top10/2025/A02_2025-Security_Misconfiguration/) * [A04:2025-加密机制失效](https://owasp.org/Top10/2025/A04_2025-Cryptographic_Failures/) * [A07:2025-身份验证失效](https://owasp.org/Top10/2025/A07_2025-Authentication_Failures/) * [A08:2025-软件与数据完整性失效](https://owasp.org/Top10/2025/A08_2025-Software_or_Data_Integrity_Failures/) ## 演示 可以在 https://escape.jero.net/ 上体验该网络安全密室逃脱。 ## 技术背景 本应用程序设计为在 [Azure Static Web Apps](https://azure.microsoft.com/en-us/services/app-service/static/) 上运行。前端应用程序位于 `/app` 文件夹中,使用 [Create React App](https://github.com/facebook/create-react-app) 进行初始化,并使用 [Chakra UI](https://chakra-ui.com/) 构建。API 位于 `/api` 文件夹中,作为 [Azure Functions](https://azure.microsoft.com/en-us/services/functions/) 应用提供。 ## 本地运行 首先,请确保你的开发环境已安装 [git](https://git-scm.com/downloads),并通过安装 [Node 和 npm](https://nodejs.org/) 进行配置,以满足 [运行 Create React App 项目的要求](https://reactjs.org/docs/create-a-new-react-app.html#create-react-app)。 接下来,由于此应用程序是为 Azure Static Web Apps 构建的,因此最好同时安装 [Azure Static Web Apps CLI](https://github.com/Azure/static-web-apps-cli) 和 [Azure Functions Core Tools](https://github.com/Azure/static-web-apps-cli#serve-both-the-static-app-and-api): ``` npm install -g @azure/static-web-apps-cli npm install -g azure-functions-core-tools@3 --unsafe-perm true ``` 现在你的开发环境已配置完毕,请创建代码的本地副本并运行开发服务器: ``` # 在文件夹 "cyberescaperoom" 中创建代码的本地副本: git clone https://github.com/jeroenvdmeer/cyberescaperoom.git # 初始化 Azure Functions 应用以创建 local.settings.json 文件: func init ./api --worker-runtime node # 运行开发服务器: swa start http://localhost:3000 --run "yarn start" --app-location ./app --api ./api ``` *注意:* 开发服务器启动后,运行在 http://localhost:3000 上的开发服务器可能会自动在你的 Web 浏览器中打开。请使用此服务器进行测试,而不是 http://localhost:4280。后者用于模拟 Azure Static Web Apps,并会加载在 `/app/staticwebapp.config.json` 中配置的内容安全策略 (CSP)。此 CSP 旨在保护在生产环境中构建的应用程序,这些构建版本在同一主机的 443 端口上同时运行前端和 API。由于你的开发环境会在与前端不同的端口上运行 API,因此当你使用 http://localhost:4280 时,Web 浏览器将无法调用 API。运行在 http://localhost:3000 上的开发服务器不受 CSP 限制,因此请使用该地址进行测试。
标签:Azure Functions, MITM代理, OPA, OWASP Top 10, React, StruQ, Syscalls, Web安全, 数据泄露, 网络安全教育, 自定义脚本, 蓝队分析, 靶场