mamgad/DVBLab
GitHub: mamgad/DVBLab
一款基于 Flask 和 React 构建的刻意漏洞银行应用,通过完整的课程体系帮助学习者掌握安全代码审计技术与 Web 漏洞修复实践。
Stars: 58 | Forks: 6
# DVBank 实验室:Python & React 网络安全实战
## 安全代码审计与 Web 应用安全实战指南
欢迎来到 DVBank 实验室,这是一个故意设计存在漏洞的银行应用程序,专为学习安全代码审计和 Web 应用安全而设计。本项目既是一个实战学习环境,也是一门涵盖识别、理解和修复安全漏洞的综合课程。
## 🎯 演示
### 仪表板

### 交易系统

### 个人资料功能

## 🎯 教学目标
本项目将帮助你掌握:
- 安全代码审计技术
- 漏洞识别与利用
- 安全修复实施
- 安全评估方法论
- 安全编码实践
## 🛠️ 技术栈
### 后端
- 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安全, 信息安全管理, 安全专业人员, 安全培训, 安全编码, 密码管理, 故意漏洞应用, 漏洞靶场, 网络安全, 自定义脚本, 蓝队分析, 请求拦截, 身份验证绕过, 逆向工具, 防御检测, 隐私保护