guchchi/VulnCTF-OWASP-Learning-Lab

GitHub: guchchi/VulnCTF-OWASP-Learning-Lab

一个故意包含漏洞的 Flask Web 应用,以 CTF 挑战形式帮助初学者学习 OWASP Top 10 Web 安全漏洞及其修复方法。

Stars: 0 | Forks: 0

# VulnCTF — OWASP Top 10 学习实验室 一个**故意包含漏洞**的 Python Flask Web 应用程序,包含 5 个专为本地网络安全教育设计的 CTF 风格挑战。本项目展示了对常见 Web 漏洞、其实际影响以及如何安全修复的理解。 ## 本项目展示的内容 - Flask Web 开发 - CTF 风格的挑战设计 - OWASP Top 10 意识 - 输入验证与注入风险 - 认证与授权弱点 - 文件访问控制风险 - 命令执行风险 - 安全修复思维 - 负责任的网络安全学习 ## 挑战 | 挑战 | 漏洞 | OWASP 领域 | 学习重点 | 难度 | |---|---|---|---|---| | SQL Injection | 拼接用户输入的原始 SQL 查询 | A03:2021 — Injection | 参数化查询 | 简单 | | Stored XSS | 使用 `\| safe` 不安全地渲染用户内容 | A03:2021 — Injection (XSS) | 输出编码 | 简单 | | IDOR | 未经授权检查的直接对象访问 | A01:2021 — Broken Access Control | 服务端授权 | 简单 | | Path Traversal | 不安全的文件路径处理允许 `../` 跳转 | A01:2021 — Broken Access Control | 安全的文件访问 | 中等 | | Command Injection | 使用 `shell=True` 不安全地执行 shell 命令 | A03:2021 — Injection | 避免 shell 执行 | 中等 | ## 设置 ### 前置条件 - Python 3.8+ - pip ### 安装说明 ``` # Clone 仓库 git clone https://github.com/guchchi/VulnCTF.git cd VulnCTF # 创建并激活虚拟环境 python -m venv venv venv\Scripts\activate # Windows # source venv/bin/activate # Linux/macOS # 安装依赖 pip install -r requirements.txt # 运行 app python app.py # 在浏览器中打开 # http://localhost:5000 ``` 该应用程序仅在 `localhost:5000` 上运行。请勿将其暴露于互联网。 ## 截图 127 0 0 1_5000_ 127 0 0 1_5000_challenge_sqli 127 0 0 1_5000_challenge_idor 127 0 0 1_5000_challenge_xss 127 0 0 1_5000_challenge_file 127 0 0 1_5000_challenge_command *截图将在本地运行应用程序后添加。* | 页面 | 描述 | |---|---| | Dashboard | 包含难度和学习重点的挑战列表 | | SQL Injection | 存在 SQL injection 漏洞的登录表单 | | Stored XSS | 不安全渲染的评论系统 | | IDOR | 可通过 ID 参数访问的用户资料 | | Path Traversal | 存在目录跳转漏洞的文件阅读器 | | Command Injection | 存在 shell injection 漏洞的 Ping 工具 | | Write-up | 包含修复方案的完整解决指南 | ## 项目结构 ``` VulnCTF/ ├── app.py # Flask application with 5 vulnerable routes ├── flag.py # CTF flags and mock data ├── secret.txt # Target file for path traversal challenge ├── requirements.txt # Python dependencies ├── SECURITY.md # Security policy and responsible use ├── .gitignore ├── screenshots/ # Add screenshots here ├── docs/ │ └── PORTFOLIO_SUMMARY.md ├── static/ │ └── style.css # Dark cyber theme └── templates/ ├── index.html # Challenge dashboard ├── challenge.html # SQL injection challenge ├── xss.html # XSS challenge ├── idor.html # IDOR challenge ├── file.html # Path traversal challenge ├── command.html # Command injection challenge └── writeup.html # Solution write-up page ``` ## 学习总结 ### 我学到了什么 - 为什么原始 SQL 查询很危险,以及参数化查询如何防止注入 - 为什么用户输入在未经输出编码的情况下绝对不能被渲染 - 为什么授权检查必须在服务端进行,而不仅仅是在 UI 中 - 为什么必须验证来自用户的文件路径并将其限制在安全目录中 - 为什么使用 `shell=True` 执行 shell 命令极度危险 - 如何从漏洞、影响和修复的角度进行思考 - CTF write-up 如何同时解释利用方式和安全修复方案 ## 负责任地使用 本项目**并非用于攻击真实系统**。它是一个**受控的实验室**,旨在了解漏洞的原理以及安全编码实践如何预防这些漏洞。此处展示的技术仅应用于您拥有或明确获得授权进行测试的系统。 ## 作品集相关性 本项目通过展示以下方面的直接动手实践学习,为我的网络安全作品集提供支持: - Web 安全漏洞 - OWASP Top 10 概念 - CTF 风格的问题解决 - 安全编码修复 - 教育实验室设计 - 技术写作(write-up 页面) ## License 本项目仅用于教育目的。
标签:CISA项目, HTTP工具, OPA, OWASP Top 10, Python Flask, 后端开发, 多模态安全, 安全教育, 漏洞演示, 网络安全, 逆向工具, 隐私保护, 靶场