Small Flask microservice demonstrating two API-layer vulnerabilities:
- IDOR (Insecure Direct Object Reference) on
GET /users/<id>/docs - Weak JWT acceptance (e.g., accepting
alg=noneor skipping signature verification)
The repository contains:
- vulnerable app (MODE=VULN) and fixed app (MODE=FIXED)
- PoC scripts (Python)
- Docker Compose for reproducible environment
- CI pipeline (Bandit + Trivy) configuration
- demo artifacts (screenshots, logs, video)
- Aleksei Fominykh — infra, docker-compose, logging, healthchecks, demo packaging
- Sofia Kulagina — CI (GitHub Actions), security scan config, seed automation (seed_db.sh)
- Daria Nikolaeva — Flask app, PoC scripts
- Diana Yakupova — Burp testing, threat model, report, demo orchestration
-
Ensure you have docker and docker compose plugin installed
docker -v docker compose version
-
Clone this repository
git clone git@github.com:versceana/idor-jwt.git
-
Change into the project directory
cd idor-jwt -
Run the environment
bash start.sh
-
Access the service at http://127.0.0.1:5001