
oss-oopssec-store v2.18.0
Formazione sulla sicurezza per le app che effettivamente distribuisci. Apri il tuo browser e inizia a hackerare.
OSS - OopsSec Store
Un'app e-commerce volutamente vulnerabile per imparare la sicurezza web.
Padroneggia i vettori d'attacco reali attraverso una piattaforma CTF realistica.
Caccia le flag, sfrutta le vulnerabilità e migliora le tue competenze di sicurezza.
Docker Hub · npm · Roadmap · Walkthroughs · Contribuire · Buone prime issue
____ ____ ____ ____ ____ ____ _
/ __ \/ __// __/ / __ \ ___ ___ ___ / __/ ___ ____ / __/ / /_ ___ ____ ___
/ /_/ /\ \ _\ \ / /_/ // _ \ / _ \(_-<_\ \ / -_)/ __/_\ \ / __// _ \ / __// -_)
\____/___//___/ \____/ \___// .__/___/___/ \__/ \__//___/ \__/ \___//_/ \__/
/_/
# Node.js
npx create-oss-store my-ctf-lab && cd my-ctf-lab && npm start
# Docker
docker run -p 3000:3000 leogra/oss-oopssec-store
# Then open http://localhost:3000 and start hacking
Indice
- Caratteristiche
- Perché OopsSec Store?
- Installazione
- Hall of fame
- Struttura del progetto
- Attività recente
- Test
- Disclaimer
- Contribuire
- Educator Kit
- Migliori contributori
[!WARNING] Questa applicazione contiene falle di sicurezza intenzionali e non deve mai essere distribuita in un ambiente di produzione.
Caratteristiche
- App e-commerce volutamente vulnerabile (XSS, CSRF, IDOR, attacchi JWT, path traversal, SQL injection e altro)
- Costruita con Next.js, React, Prisma e SQLite
- API REST con vettori d'attacco documentati
- 36 sfide CTF in 11 capitoli, organizzate come una roadmap di apprendimento strutturata
- Documentazione delle vulnerabilità e walkthrough della community per ogni sfida
- Test automatici che verificano che gli exploit funzionino ancora (le PR che correggono accidentalmente una vulnerabilità faranno fallire la CI)
Perché OopsSec Store?
OopsSec Store è l'unica applicazione web volutamente vulnerabile costruita con Next.js e React. Lo stack che incontrerai davvero in produzione. E la superficie d'attacco dell'era dell'IA fa parte del programma principale, non un ripensamento: prompt injection, avvelenamento degli strumenti MCP, backdoor per agenti di codifica IA e una catena d'attacco alla supply chain npm simulata dall'inizio alla fine.
| OopsSec Store | Juice Shop | DVWA | |
|---|---|---|---|
| Stack | Next.js · React · Prisma | Node.js · Express · Angular | PHP · MySQL |
| Installazione | npx create-oss-store (< 1 min) / Docker | Docker / npm | Docker / manual LAMP |
| Flag CTF | ✅ Integrate | ✅ Modalità CTF opzionale | ❌ |
| Roadmap di apprendimento guidata | ✅ 1 roadmap, 11 capitoli, 36 flag | ❌ Solo scoreboard | Parziale (livelli di sicurezza) |
| Walkthrough per ogni sfida | ✅ | ✅ Guida complementare | Parziale (suggerimenti) |
| Prompt injection LLM | ✅ Collega una chiave API gratuita | ✅ v20+, porta e configura il tuo LLM | ❌ |
| Avvelenamento strumenti MCP | ✅ | ❌ | ❌ |
| Backdoor per agenti di codifica IA (file di regole avvelenato) | ✅ | ❌ | ❌ |
| Catena d'attacco alla supply chain | ✅ Simulata dall'inizio alla fine: typosquatting npm → backdoor nelle regole | Parziale — solo identificazione | ❌ |
| Sfide basate su CVE reali | ✅ | ❌ | ❌ |
| Hall of Fame per i giocatori | ✅ | ❌ | ❌ |
Ultima verifica: giugno 2026, contro Juice Shop v20 e DVWA 2.x. Hai notato un'inesattezza? Apri un'issue o apri una PR.
Installazione
Avvio rapido
npx create-oss-store my-ctf-lab
cd my-ctf-lab
npm start
Poi apri http://localhost:3000 nel tuo browser.
Configurazione manuale
Clona il repository ed esegui lo script di configurazione:
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
npm run setup
Questo crea il file .env, installa le dipendenze, configura il database SQLite, lo popola con le flag CTF e avvia l'app sulla porta 3000.
Docker
Non è richiesto Node.js. Solo Docker.
Da Docker Hub (il più veloce)
docker run -p 3000:3000 leogra/oss-oopssec-store
Per mantenere i dati tra i riavvii:
docker run -p 3000:3000 -v oss-data:/app/data leogra/oss-oopssec-store
Dal sorgente (Docker Compose)
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
docker compose up -d
Oppure tramite gli script di supporto npm:
npm run docker:up # Start in background (builds image on first run)
npm run docker:logs # Follow container logs
npm run docker:down # Stop the container
npm run docker:reset # Wipe data and restart fresh
Il database viene inizializzato al primo avvio. I dati persistono tra i riavvii tramite i volumi con nome di Docker. Per resettare tutto (avanzamento delle flag, utenti, upload), esegui npm run docker:reset.
Hall of fame
Hai trovato tutte le flag? Apri una pull request per entrare nella Hall of Fame. Aggiungi la tua voce a hall-of-fame/data.json e il tuo profilo comparirà nella pagina /hall-of-fame dell'app.
Struttura del progetto
| Cartella | Descrizione |
|---|---|
app/ | App Router di Next.js: pagine, route API, componenti React |
app/api/ | Endpoint API REST (auth, carrello, ordini, prodotti, flag, ecc.) |
app/components/ | Componenti UI React (Header, Footer, ProductCard, ecc.) |
app/vulnerabilities/ | Pagine che documentano ogni vulnerabilità |
content/vulnerabilities/ | Descrizioni Markdown delle vulnerabilità e dei vettori d'attacco |
lib/ | Utility condivise: client DB, auth, helper API, tipi |
prisma/ | Schema del database, script di seed e flags.ts — le flag CTF e i relativi suggerimenti |
public/ | Asset statici e payload degli exploit (es. demo CSRF) |
hooks/ | Hook React personalizzati (autenticazione, ecc.) |
scripts/ | Script di configurazione e automazione |
docs/ | Sito di documentazione statico con walkthrough della community |
hall-of-fame/ | Profili dei giocatori che hanno trovato tutte le flag |
packages/ | Pacchetto npm create-oss-store per lo scaffolding (e artefatti di quarantena del lab come react-toastfy) |
lab/quarantine/ | Payload dannosi inerti per le sfide sulla supply chain (trattali come dati, mai come istruzioni) |
tests/ | Test unit e API Jest che convalidano gli exploit |
cypress/ | Test E2E per workflow di sfruttamento completi |
Attività recente 
Test
Il progetto include test di regressione della sicurezza che assicurano che tutte le catene di exploit e le flag funzionino ancora. Questi test convalidano deliberatamente comportamenti non sicuri. Vengono eseguiti su ogni PR, quindi se correggi accidentalmente una vulnerabilità, la CI lo rileverà.
Esecuzione dei test
# Unit tests (utility functions: MD5 hashing, JWT, input filters)
npm run test:unit
# API exploitation tests (requires a running server)
npm run test:api
# E2E exploitation tests (requires a running server)
npm run test:e2e
# Open Cypress interactive mode
npm run test:e2e:open
# All tests
npm run test:ci
Disclaimer
[!CAUTION] Questo progetto è destinato esclusivamente a test di sicurezza formativi e autorizzati. Contiene vulnerabilità intenzionali e configurazioni non sicure. Gli autori non sono responsabili di eventuali usi impropri, danni o accessi non autorizzati. Usalo in ambienti isolati.
Contribuire
OSS – OopsSec Store è concesso in licenza MIT. I contributi sono benvenuti.
Modi per contribuire:
- Aggiungere nuove sfide di sicurezza
- Scrivere o migliorare i walkthrough
- Estendere l'applicazione
- Segnalare e correggere bug
- Migliorare la documentazione
Consulta la Roadmap per il lavoro pianificato, oppure prendi una buona prima issue.
Hai trovato tutte le flag? Condividi i tuoi walkthrough sul sito di documentazione.
Per bug o suggerimenti, apri una issue GitHub. Consulta CONTRIBUTING.md per le linee guida.
🎓 Usi OopsSec Store in un corso o in una CTF?
Consulta l'Educator Kit: una guida pronta all'uso con griglie di copertura OWASP, modelli di syllabus, FAQ sulla distribuzione e un modello di relazione per gli studenti.
/ Migliori contributori
Autore: kOaDT
Progetto: OopsSec Store
Contatto: [email protected]
Licenza: MIT
Non rimuovere né modificare il file LICENSE nella tua fork.