
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 · Walkthrough · Contribuisci · Buone prime issue
____ ____ ____ ____ ____ ____ _
/ __ \/ __// __/ / __ \ ___ ___ ___ / __/ ___ ____ / __/ / /_ ___ ____ ___
/ /_/ /\ \ _\ \ / /_/ // _ \ / _ \(_-<_\ \ / -_)/ __/_\ \ / __// _ \ / __// -_)
\____/___//___/ \____/ \___// .__/___/___/ \__/ \__//___/ \__/ \___//_/ \__/
/_/
# Node.js
npx create-oss-store my-ctf-lab && cd my-ctf-lab && npm start
# Docker
docker run -p 127.0.0.1:3000:3000 leogra/oss-oopssec-store
# Then open http://localhost:3000 and start hacking
Indice dei contenuti
- Funzionalità
- Perché OopsSec Store?
- Installazione
- Hall of fame
- Community
- Struttura del progetto
- Attività recente
- Test
- Disclaimer
- Contributi
- Kit per educatori
- Top contributor
[!WARNING] Questa applicazione contiene falle di sicurezza intenzionali e non deve mai essere distribuita in un ambiente di produzione.
Funzionalità
- 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 sulle vulnerabilità e walkthrough della community per ogni sfida
- Una stanza TryHackMe guidata — The Summer Audit, 8 task e 7 flag, come introduzione narrativa per i principianti
- Test automatici che verificano che gli exploit funzionino ancora (le PR che accidentalmente correggono una vulnerabilità falliranno 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 è parte del curriculum principale, non un ripensamento: prompt injection, avvelenamento degli strumenti MCP, backdoor per agenti di codifica IA e una catena di 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 |
| Configurazione | npx create-oss-store (< 1 min) / Docker | Docker / npm | Docker / LAMP manuale |
| Flag CTF | ✅ Integrate | ✅ Modalità CTF opzionale | ❌ |
| Roadmap di apprendimento guidata | ✅ 1 roadmap, 11 capitoli, 36 flag | ❌ Solo tabellone punteggi | 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 agente di codifica IA (file di regole avvelenato) | ✅ | ❌ | ❌ |
| Catena di attacco alla supply chain | ✅ Simulata dall'inizio alla fine: typosquat 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
Nessun Node.js richiesto. Solo Docker.
127.0.0.1:3000:3000mantiene il laboratorio raggiungibile solo dalla tua macchina. Usa il semplice-p 3000:3000solo su una VM isolata che controlli.
Da Docker Hub (più veloce)
docker run -p 127.0.0.1:3000:3000 leogra/oss-oopssec-store
Per mantenere i dati tra i riavvii:
docker run -p 127.0.0.1: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 usando gli script helper npm:
npm run docker:up # Avvia in background (compila l'immagine al primo avvio)
npm run docker:logs # Segui i log del container
npm run docker:down # Ferma il container
npm run docker:reset # Cancella i dati e riavvia da zero
Il database si inizializza al primo avvio. I dati persistono tra i riavvii tramite volumi nominati Docker. Per resettare tutto (progressi 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 apparirà nella pagina /hall-of-fame dell'app.
Community
Domande, soluzioni e feedback vivono in Discussions.
| Dove andare | Per cosa |
|---|---|
| 🧩 Bloccato su una sfida | L'exploit non scatta, la flag non viene validata |
| 🛠️ Configurazione e installazione | Problemi Docker, npm o Node per avviare il laboratorio |
| 🏆 Mostra la tua soluzione | Una via verso la flag non coperta dal walkthrough |
| 💡 Idee per sfide | Una classe di vulnerabilità che vale la pena aggiungere al curriculum |
| 🎓 Insegnare con OopsSec | Gestire il laboratorio con una classe, un bootcamp o un team |
| Issues | Bug nel laboratorio stesso, e solo quelli |
Struttura del progetto
| Cartella | Descrizione |
|---|---|
app/ | Next.js App Router: 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 loro suggerimenti |
public/ | Asset statici e payload di exploit (es. demo CSRF) |
hooks/ | Hook React personalizzati (autenticazione, ecc.) |
scripts/ | Script di configurazione e automazione |
docs/ | Sito di documentazione statica 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 unitari Jest e test API che validano gli exploit |
cypress/ | Test E2E per flussi di sfruttamento completi |
Attività recente 
Test
Il progetto include test di regressione sulla sicurezza che garantiscono che tutte le catene di exploit e le flag funzionino ancora. Questi test validano deliberatamente comportamenti insicuri. Vengono eseguiti su ogni PR, quindi se correggi accidentalmente una vulnerabilità, la CI lo rileverà.
Esecuzione dei test
# Test unitari (funzioni di utilità: hashing MD5, JWT, filtri di input)
npm run test:unit
# Test di sfruttamento API (richiede un server in esecuzione)
npm run test:api
# Test di sfruttamento E2E (richiede un server in esecuzione)
npm run test:e2e
# Apri la modalità interattiva Cypress
npm run test:e2e:open
# Tutti i test
npm run test:ci
Disclaimer
[!CAUTION] Questo progetto è solo per scopi educativi e test di sicurezza autorizzati. Contiene vulnerabilità intenzionali e configurazioni insicure. Gli autori non sono responsabili di qualsiasi uso improprio, danno o accesso non autorizzato. Usalo in ambienti isolati.
Contributi
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
Controlla 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 GitHub Issue. Consulta CONTRIBUTING.md per le linee guida.
🎓 Usi OopsSec Store in un corso o CTF?
Consulta il Kit per educatori - una guida pronta all'uso con griglie di copertura OWASP, modelli di programma, FAQ di distribuzione e un modello di report per studenti. Stai costruendo i tuoi strumenti attorno al curriculum? Il tutto è pubblicato come feed leggibile dalla macchina in challenges.json, rigenerato a ogni distribuzione della documentazione.
/ Top contributor
Autore: kOaDT
Progetto: OopsSec Store
Contatto: [email protected]
Licenza: MIT
Non rimuovere o modificare il file LICENSE nel tuo fork.