A deliberately vulnerable Flask application for DevSecOps training and testing purposes.
- Flask API with multiple vulnerable endpoints
- Login form with HTML/CSS
- FTP integration with environment variable configuration
- Docker and Docker Compose support
- Build and start all services:
docker-compose up -d- Access the application:
- API: http://localhost:5000
- Login Form: http://localhost:5000/login-form
- FTP Server: ftp://localhost:21 (user: admin, password: hardcodedpassword)
- Stop the services:
docker-compose downBuild the image:
docker build -t devsecops-api .Run the container:
docker run -p 5000:5000 -e FTP_HOST=ftp.example.com devsecops-apiGET /- Hello WorldGET /login-form- HTML login form with CSSPOST /login- Login endpoint (SQL injection vulnerable)POST /register- User registration (weak hashing)GET /debug- Debug endpoint (code injection vulnerable)GET /ftp- FTP file listingPOST /execute- Command execution (command injection vulnerable)
FTP_HOST- FTP server hostname (default: ftp.example.com)
The docker-compose setup includes an FTP server with:
- Username:
admin - Password:
hardcodedpassword - Contains fake sensitive files for testing:
- credentials.txt
- customer_data.csv
- internal_memo.txt
Known vulnerabilities include:
- SQL Injection
- Command Injection
- Code Injection (eval)
- Hardcoded credentials
- Weak password hashing (MD5)
- Debug mode enabled
- Sensitive data exposure
See LICENSE file for details.