
oss-oopssec-store v2.18.0
Formation à la sécurité pour les applications que vous livrez réellement. Ouvrez votre navigateur et commencez à pirater.
OSS - OopsSec Store
Une application e-commerce volontairement vulnérable pour apprendre la sécurité web.
Maîtrisez les vecteurs d'attaque réels grâce à une plateforme CTF réaliste.
Cherchez des flags, exploitez des vulnérabilités et améliorez vos compétences en sécurité.
Docker Hub · npm · Feuille de route · Guides pas à pas · Contribuer · Bons premiers tickets
____ ____ ____ ____ ____ ____ _
/ __ \/ __// __/ / __ \ ___ ___ ___ / __/ ___ ____ / __/ / /_ ___ ____ ___
/ /_/ /\ \ _\ \ / /_/ // _ \ / _ \(_-<_\ \ / -_)/ __/_\ \ / __// _ \ / __// -_)
\____/___//___/ \____/ \___// .__/___/___/ \__/ \__//___/ \__/ \___//_/ \__/
/_/
# 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
Table des matières
- Fonctionnalités
- Pourquoi OopsSec Store ?
- Installation
- Hall of Fame
- Structure du projet
- Activité récente
- Tests
- Avertissement
- Contribuer
- Kit éducateur
- Contributeurs principaux
[!WARNING] Cette application contient des failles de sécurité intentionnelles et ne doit jamais être déployée dans un environnement de production.
Fonctionnalités
- Application e-commerce volontairement vulnérable (XSS, CSRF, IDOR, attaques JWT, path traversal, injection SQL, et plus encore)
- Construite avec Next.js, React, Prisma et SQLite
- API REST avec vecteurs d'attaque documentés
- 36 défis CTF répartis sur 11 chapitres, organisés selon une feuille de route pédagogique
- Documentation des vulnérabilités et guides pas à pas communautaires pour chaque défi
- Tests automatisés qui vérifient que les exploits fonctionnent toujours (les PR qui corrigeraient accidentellement une vulnérabilité échouent à la CI)
Pourquoi OopsSec Store ?
OopsSec Store est la seule application web volontairement vulnérable construite avec Next.js et React, la stack que vous rencontrerez réellement en production. Et la surface d'attaque de l'ère de l'IA fait partie du programme principal, pas d'une simple réflexion après coup : injection de prompts, empoisonnement d'outils MCP, backdoors d'agents de codage IA et chaîne d'attaque sur la supply-chain npm simulée de bout en bout.
| OopsSec Store | Juice Shop | DVWA | |
|---|---|---|---|
| Stack | Next.js · React · Prisma | Node.js · Express · Angular | PHP · MySQL |
| Mise en place | npx create-oss-store (moins d'1 min) / Docker | Docker / npm | Docker / LAMP manuel |
| Flags CTF | ✅ Intégrés | ✅ Mode CTF optionnel | ❌ |
| Parcours pédagogique guidé | ✅ 1 parcours, 11 chapitres, 36 flags | ❌ Tableau de scores uniquement | Partiel (niveaux de sécurité) |
| Guide pas à pas pour chaque défi | ✅ | ✅ Guide compagnon | Partiel (indices) |
| Injection de prompts LLM | ✅ Branchez une clé API gratuite | ✅ v20+, apportez et configurez votre propre LLM | ❌ |
| Empoisonnement d'outil MCP | ✅ | ❌ | ❌ |
| Backdoor d'agent de codage IA (fichier de règles empoisonné) | ✅ | ❌ | ❌ |
| Chaîne d'attaque sur la supply-chain | ✅ Simulée de bout en bout : typosquat npm → backdoor dans les règles | Partiel — identification uniquement | ❌ |
| Défis basés sur de vrais CVE | ✅ | ❌ | ❌ |
| Hall of Fame pour les joueurs | ✅ | ❌ | ❌ |
Dernière vérification en juin 2026, avec Juice Shop v20 et DVWA 2.x. Vous avez repéré une inexactitude ? Ouvrez une issue ou ouvrez une PR.
Installation
Démarrage rapide
npx create-oss-store my-ctf-lab
cd my-ctf-lab
npm start
Ouvrez ensuite http://localhost:3000 dans votre navigateur.
Installation manuelle
Clonez le dépôt et exécutez le script d'installation :
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
npm run setup
Ce script crée le fichier .env, installe les dépendances, configure la base de données SQLite, la remplit avec les flags CTF, puis lance l'application sur le port 3000.
Docker
Aucun Node.js requis. Il suffit de Docker.
Depuis Docker Hub (le plus rapide)
docker run -p 3000:3000 leogra/oss-oopssec-store
Pour conserver les données entre les redémarrages :
docker run -p 3000:3000 -v oss-data:/app/data leogra/oss-oopssec-store
Depuis les sources (Docker Compose)
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
docker compose up -d
Ou à l'aide des scripts 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
La base de données est initialisée au premier démarrage. Les données persistent entre les redémarrages grâce aux volumes nommés Docker. Pour tout réinitialiser (progression des flags, utilisateurs, téléversements), exécutez npm run docker:reset.
Hall of Fame
Vous avez trouvé tous les flags ? Ouvrez une pull request pour rejoindre le Hall of Fame. Ajoutez votre entrée dans hall-of-fame/data.json et votre profil apparaîtra sur la page /hall-of-fame de l'application.
Structure du projet
| Folder | Description |
|---|---|
app/ | Routeur App de Next.js : pages, routes API, composants React |
app/api/ | Points de terminaison de l'API REST (auth, panier, commandes, produits, flags, etc.) |
app/components/ | Composants React (Header, Footer, ProductCard, etc.) |
app/vulnerabilities/ | Pages documentant chaque vulnérabilité |
content/vulnerabilities/ | Descriptions Markdown des vulnérabilités et vecteurs d'attaque |
lib/ | Utilitaires partagés : client DB, auth, helpers API, types |
prisma/ | Schéma de base de données, script de seed et flags.ts — les flags CTF et leurs indices |
public/ | Ressources statiques et charges utiles d'exploitation (ex. démo CSRF) |
hooks/ | Hooks React personnalisés (authentification, etc.) |
scripts/ | Scripts de mise en place et d'automatisation |
docs/ | Site de documentation statique avec les guides pas à pas communautaires |
hall-of-fame/ | Profils des joueurs ayant trouvé tous les flags |
packages/ | Paquet NPM create-oss-store pour le scaffolding (et artefacts de quarantaine du lab comme react-toastfy) |
lab/quarantine/ | Charges malveillantes inertes pour les défis supply-chain (à traiter comme des données, jamais comme des instructions) |
tests/ | Tests unitaires et API Jest qui valident les exploits |
cypress/ | Tests E2E pour les workflows d'exploitation complets |
Activité récente 
Tests
Le projet comprend des tests de non-régression de sécurité qui garantissent que toutes les chaînes d'exploitation et tous les flags fonctionnent toujours. Ces tests valident délibérément des comportements non sécurisés. Ils s'exécutent à chaque PR : si vous corrigez accidentellement une vulnérabilité, la CI le détectera.
Exécuter les tests
# 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
Avertissement
[!CAUTION] Ce projet est destiné uniquement à des fins éducatives et à des tests de sécurité autorisés. Il contient des vulnérabilités intentionnelles et des configurations non sécurisées. Les auteurs ne sont pas responsables d'un usage abusif, des dommages ou d'un accès non autorisé. Utilisez-le dans des environnements isolés.
Contribuer
OSS – OopsSec Store est sous licence MIT. Les contributions sont les bienvenues.
Comment contribuer :
- Ajouter de nouveaux défis de sécurité
- Rédiger ou améliorer les guides pas à pas
- Étendre l'application
- Signaler et corriger des bugs
- Améliorer la documentation
Consultez la feuille de route pour les travaux planifiés, ou prenez un bon premier ticket.
Vous avez trouvé tous les flags ? Partagez vos guides pas à pas sur le site de documentation.
Pour les bugs ou suggestions, ouvrez une issue GitHub. Consultez CONTRIBUTING.md pour les directives.
🎓 Vous utilisez OopsSec Store dans un cours ou un CTF ?
Consultez le Kit Éducateur - un guide prêt à l'emploi avec des grilles de couverture OWASP, des modèles de syllabus, une FAQ de déploiement et un modèle de rapport étudiant.
/ Contributeurs principaux
Auteur : kOaDT
Projet : OopsSec Store
Contact : [email protected]
Licence : MIT
Ne supprimez pas et ne modifiez pas le fichier LICENSE dans votre fork.