Welcome to DVBank Lab, an intentionally vulnerable banking application designed for learning secure code review and web application security. This project serves as both a hands-on learning environment and a comprehensive course in identifying, understanding, and fixing security vulnerabilities.
Inspired by DVWA (Damn Vulnerable Web Application), this project aims to provide a modern, full-stack vulnerable application specifically focused on banking security scenarios.
This project helps you master:
- Secure code review techniques
- Vulnerability identification and exploitation
- Security fix implementation
- Security assessment methodologies
- Secure coding practices
- Python 3.9+
- Flask Framework
- SQLAlchemy ORM
- JWT Authentication
- SQLite Database
- React 18
- TailwindCSS
- Lucide Icons
- Modern UI/UX
- Docker & Docker Compose
- Git Version Control
- Development Tools Integration
Detailed course materials can be found in the following files:
Module | Description | Link |
---|---|---|
0. Methodology | Secure Code Review Methodology | π Module 0 |
1. Application Reconnaissance | Application Reconnaissance & Attack Surface Mapping | π Module 1 |
2. Software Composition Analysis | Dependency Security Analysis | π Module 2 |
3. Authentication & Authorization | Authentication & Authorization Vulnerabilities | π Module 3 |
4. SQL Injection | SQL Injection Vulnerabilities | π Module 4 |
5. Input Validation | Input Validation Vulnerabilities | π Module 5 |
6. API Security | API Security Best Practices | π Module 6 |
7. Secure Coding | Secure Coding Practices | π Module 7 |
8. Static Analysis | Automated Static Analysis with Semgrep | π Module 8 |
Each module contains:
- Theoretical background
- Vulnerable code examples
- Exploitation techniques
- Prevention methods
- Hands-on exercises
- Additional resources
- Python 3.9 or higher
- Node.js 16 or higher
- Docker and Docker Compose (optional)
- Git
# Clone repository
git clone https://github.com/mamgad/DVBLab.git
cd DVBLab
# Launch application
docker-compose up --build
# Clone repository
git clone https://github.com/mamgad/DVBLab.git
cd DVBLab
# Backend setup
cd backend
python -m venv venv
# Activate virtual environment
source venv/bin/activate # Linux/macOS
.\venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Start server
python app.py
# In a new terminal
cd frontend
npm install
npm start
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- Username: alice, Password: password123
- Username: bob, Password: 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-based authentication
- Password hashing
- Session management
- Money transfers
- Balance tracking
- Transaction history
- User registration
- Profile management
- Role-based access
- Authentication Bypass
- Authorization Flaws
- Input Validation
- Business Logic Flaws
- API Security Issues
- Code Review Techniques
- Vulnerability Assessment
- Security Testing
- Fix Implementation
This application contains INTENTIONAL security vulnerabilities for educational purposes:
- SQL Injection vulnerabilities
- Insecure JWT implementation
- Missing input validation
- IDOR vulnerabilities
- Race conditions
- Weak password policies
DO NOT:
- Deploy to production
- Use real credentials
- Use production data
- Host publicly
We welcome contributions! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
- Follow security guidelines
- Course Modules
- Installation Guide
- Known Vulnerabilities - Detailed list of intentional security issues
- OWASP Foundation
- DVWA - The original inspiration for this project
- Security research community
- Open source contributors
This application contains intentional security vulnerabilities for educational purposes. The creators are not responsible for any misuse or damage caused by this application. Use at your own risk and only in a controlled, isolated environment.
Β© 2024 All Rights Reserved.
This educational material is provided for learning purposes only. The code examples and vulnerabilities demonstrated are for educational use in a controlled environment. The authors and contributors are not responsible for any misuse of the information provided.
Note: All code examples contain intentional vulnerabilities for educational purposes. Do not use in production environments.