
Laboratori web di vulnerabilità atomici. Una falla OWASP per app — Flask + Docker minimali, volutamente vulnerabili per lo studio pratico con Burp Suite.
⚠️ Intenzionalmente vulnerabile. Esegui solo in locale. Non esporre mai a Internet o a una rete condivisa.
Leggi questo documento in altre lingue: Português (Brasil)
Milestone — v1.0: atomicvulns ora copre tutte e dieci le categorie OWASP Top 10 2021 (A01–A10), attraverso 38 atomi. Vedi la release v1.0.
atomicvulns è una raccolta di applicazioni web — ognuna minuscola, isolata e focalizzata su dell'OWASP Top 10. Ogni atomo include l'app vulnerabile, la versione corretta, un diff commentato tra le due e una guida pratica allo sfruttamento.
Questa non è l'ennesima DVWA o Juice Shop. Applicazioni vulnerabili monolitiche esistono già. Ciò che distingue atomicvulns è l'atomismo radicale: un'app per ogni flaw, veloce da leggere, veloce da esplorare. Mappi la causa nel codice → richiesta/risposta → exploit senza dover prima comprendere un'intera applicazione.
Tutte e dieci le categorie OWASP Top 10 2021 sono coperte — 38 atomi in totale:
| Categoria | Atomi |
|---|---|
| A01 — Broken Access Control | idor-numeric-id, path-traversal-basic, idor-uuid-guessable, bola-rest, csrf-basic, open-redirect, mass-assignment |
| A02 — Cryptographic Failures | jwt-none-alg, jwt-weak-secret, jwt-key-confusion, crypto-weak-hash, crypto-ecb-mode |
| A03 — Injection | sqli-union-basic, xss-reflected, sqli-blind-boolean, sqli-blind-time, xss-stored, command-injection-basic, ssti-jinja, xss-dom, nosql-injection-mongo, ldap-injection, sqli-second-order |
| A04 — Insecure Design | race-condition-basic |
| A05 — Security Misconfiguration | xxe-basic, xxe-blind-oob, debug-enabled, cors-wildcard |
| A06 — Vulnerable and Outdated Components | cve-demo |
| A07 — Identification and Authentication Failures | session-fixation, weak-password-reset |
| A08 — Software and Data Integrity Failures | deserialization-pickle, prototype-pollution, deserialization-node |
| A09 — Security Logging and Monitoring Failures | logging-failures-demo |
| A10 — Server-Side Request Forgery (SSRF) | ssrf-basic, ssrf-blind-oob, ssrf-cloud-metadata |
Studenti di pentest e apprendisti di AppSec che conoscono già le basi di HTTP e del terminale, usano (o stanno imparando a usare) Burp Suite, e vogliono un laboratorio mirato in cui ogni esercizio sia abbastanza breve da completare in una sola sessione. Il materiale è scritto per chi applicherà queste competenze in una carriera nel pentest — Burp è lo strumento principale, l'interfaccia è solo contesto.
Ogni atomo risiede nella propria cartella sotto atoms/A0X-<category>/<atom-id>/ e include un docker-compose.yml. Uno script wrapper nella root, ./atom, li gestisce:
./atom list # show all available atoms
./atom up <atom-id> # start the vulnerable + fixed pair
./atom down <atom-id> # stop and remove containers
./atom doctor # sanity-check your local setup
Ad esempio, per avviare il primo atomo:
./atom up sqli-union-basic
# vulnerable → http://127.0.0.1:8001
# fixed → http://127.0.0.1:8101
Ogni atomo si lega solo a 127.0.0.1. Non modificarlo mai — queste app sono intenzionalmente vulnerabili.
Rilasciato sotto la MIT License. Se fai un fork di questo repository per materiale didattico, l'attribuzione è richiesta.