mamgad/DVBLab

GitHub: mamgad/DVBLab

一款基于 Flask 和 React 构建的刻意漏洞银行应用,通过完整的课程体系帮助学习者掌握安全代码审计技术与 Web 漏洞修复实践。

Stars: 58 | Forks: 6

# DVBank 实验室:Python & React 网络安全实战 ## 安全代码审计与 Web 应用安全实战指南 欢迎来到 DVBank 实验室,这是一个故意设计存在漏洞的银行应用程序,专为学习安全代码审计和 Web 应用安全而设计。本项目既是一个实战学习环境,也是一门涵盖识别、理解和修复安全漏洞的综合课程。 ## 🎯 演示 ### 仪表板 ![Dashboard Demo](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/89d023b9ad173600.png) ### 交易系统 ![Transactions Demo](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/327ee6a273173601.png) ### 个人资料功能 ![Profile Features](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/adb02dd277173603.png) ## 🎯 教学目标 本项目将帮助你掌握: - 安全代码审计技术 - 漏洞识别与利用 - 安全修复实施 - 安全评估方法论 - 安全编码实践 ## 🛠️ 技术栈 ### 后端 - Python 3.9+ - Flask 框架 - SQLAlchemy ORM - JWT 身份验证 - SQLite 数据库 ### 前端 - React 18 - TailwindCSS - Lucide Icons - 现代 UI/UX ### 开发与部署 - Docker & Docker Compose - Git 版本控制 - 开发工具集成 ## 📚 模块索引 详细的课程资料可以在以下文件中找到: | 模块 | 描述 | 链接 | |--------|-------------|------| | 0. 方法论 | 安全代码审计方法论 | [📘 模块 0](course/modules/00_methodology.md) | | 1. 应用侦察 | 应用侦察与攻击面映射 | [📘 模块 1](course/modules/01_recon_and_mapping.md) | | 2. 软件成分分析 | 依赖安全分析 | [📘 模块 2](course/modules/02_sca.md) | | 3. 身份验证与授权 | 身份验证与授权漏洞 | [📘 模块 3](course/modules/03_auth_and_authz.md) | | 4. SQL 注入 | SQL 注入漏洞 | [📘 模块 4](course/modules/04_sql_injection.md) | | 5. 输入验证 | 输入验证漏洞 | [📘 模块 5](course/modules/05_input_validation.md) | | 6. API 安全 | API 安全最佳实践 | [📘 模块 6](course/modules/06_api_security.md) | | 7. 安全编码 | 安全编码实践 | [📘 模块 7](course/modules/07_secure_coding.md) | | 8. 静态分析 | 使用 Semgrep 进行自动化静态分析 | [📘 模块 8](course/modules/08_static_analysis.md) | 每个模块包含: - 理论背景 - 存在漏洞的代码示例 - 利用技术 - 防御方法 - 动手练习 - 其他资源 ## 🚀 快速开始 ### 前置条件 - Python 3.9 或更高版本 - Node.js 16 或更高版本 - Docker 和 Docker Compose(可选) - Git ### Docker 设置(推荐) ``` # 克隆 repository git clone https://github.com/mamgad/DVBLab.git cd DVBLab # 启动 application docker-compose up --build ``` ### 手动设置 #### 后端 (Python/Flask) ``` # 克隆 repository git clone https://github.com/mamgad/DVBLab.git cd DVBLab # Backend 设置 cd backend python -m venv venv # 激活 virtual environment source venv/bin/activate # Linux/macOS .\venv\Scripts\activate # Windows # 安装 dependencies pip install -r requirements.txt # 启动 server python app.py ``` #### 前端 (React) ``` # 在新的 terminal cd frontend npm install npm start ``` ### 访问应用程序 - 前端:http://localhost:3000 - 后端 API:http://localhost:5000 ### 测试凭证 - 用户名:alice,密码:password123 - 用户名:bob,密码:password123 ## 🏗️ 项目结构 ``` vulnerable-bank/ ├── backend/ # Flask backend │ ├── routes/ # API endpoints │ │ ├── auth_routes.py # Authentication │ │ └── transaction_routes.py # Transactions │ ├── app.py # Main application │ ├── models.py # Database models │ └── requirements.txt # Python dependencies ├── frontend/ # React frontend │ ├── src/ │ │ ├── components/ # React components │ │ └── App.js # Main app component │ └── package.json # Node dependencies ├── course/ # Educational content │ ├── modules/ # Course modules │ └── exercises/ # Practice materials └── docker-compose.yml # Docker configuration ``` ## 🔒 安全特性 ### 身份验证系统 - 基于 JWT 的身份验证 - 密码哈希 - 会话管理 ### 交易系统 - 资金转账 - 余额追踪 - 交易历史 ### 用户管理 - 用户注册 - 个人资料管理 - 基于角色的访问 ## 🎯 学习目标 ### 漏洞类别 1. 身份验证绕过 2. 授权缺陷 3. 输入验证 4. 业务逻辑缺陷 5. API 安全问题 ### 安全技能 1. 代码审计技术 2. 漏洞评估 3. 安全测试 4. 修复实施 ## ⚠️ 安全提示 本应用程序包含用于教学目的的**故意设计的**安全漏洞: 1. SQL 注入漏洞 2. 不安全的 JWT 实现 3. 缺少输入验证 4. IDOR 漏洞 5. 竞态条件 6. 弱密码策略 **切勿:** - 部署到生产环境 - 使用真实凭证 - 使用生产数据 - 公开托管 ## 📚 其他资源 ### 文档 - [课程模块](./course/README.md) - [安装指南](#-quick-start) - [已知漏洞](./docs/Vulnerabilities.md) - 故意设计的安全问题详细列表 ### 外部资源 - [OWASP Top 10](https://owasp.org/www-project-top-ten/) - [Flask Security](https://flask.palletsprojects.com/en/stable/web-security/) ## ⚠️ 免责声明 本应用程序包含用于教学目的的故意设计的安全漏洞。创建者不对因使用本应用程序而导致的任何误用或损害负责。请自担风险使用,并仅在受控的隔离环境中使用。 ## 法律声明 © 2024 版权所有。 本教材仅供学习使用。所演示的代码示例和漏洞仅供在受控环境中进行教学使用。作者和贡献者不对所提供信息的任何误用负责。 _注意:所有代码示例均包含用于教学目的的故意设计的漏洞。请勿在生产环境中使用。_
标签:CISA项目, CTF训练, DNS 反向解析, Docker实验环境, Flask, OWASP Top 10, React, Syscalls, Web安全, 信息安全管理, 安全专业人员, 安全培训, 安全编码, 密码管理, 故意漏洞应用, 漏洞靶场, 网络安全, 自定义脚本, 蓝队分析, 请求拦截, 身份验证绕过, 逆向工具, 防御检测, 隐私保护