Repository navigation
Fixed version of the lab (fixed branch), derived from v1.0.0 with every
vulnerability mitigated:
- SQLi -> parameterized query
- Command injection -> shell-free
subprocess+ipaddressvalidation - Path traversal / LFI ->
send_from_directory - XXE ->
defusedxml - Reflected XSS -> template with autoescaping
- SSTI -> input passed as a variable to a fixed template
- Insecure deserialization -> signed cookie (
itsdangerous) andyaml.safe_load - SSRF -> explicit allowlist + internal-IP blocking + no redirects
- Broken access control / IDOR -> note ownership enforced from the signed session
Run exploits/poc.py against it: it must report 0/10 findings. Why each fix works,
what SAST catches/misses, and the source->sink model: see the docs/ folder.
See every fix in one diff: git diff v1.0.0 v1.0.1 -- app/app.py. The DNS-rebinding
hardening is left as a documented advanced exercise.