Retour aux mises à jour
New releaseAug 12, 2026

oss-oopssec-store v2.18.0

Formation à la sécurité pour les applications que vous livrez réellement. Ouvrez votre navigateur et commencez à pirater.

Partager

OSS - OopsSec Store

Une application e-commerce intentionnellement vulnérable pour apprendre la sécurité web.
Maîtrisez les vecteurs d'attaque réels grâce à une plateforme CTF réaliste.
Chassez les flags, exploitez les vulnérabilités et améliorez vos compétences en sécurité.

Docker Hub · npm · Feuille de route · Procédures pas à pas · Contribuer · Bonnes premières issues

GitHub license PRs Welcome Good first issues Intentionally Vulnerable
GitHub stars GitHub forks


   ____  ____ ____     ____                  ____            ____  _
  / __ \/ __// __/    / __ \ ___   ___  ___ / __/ ___  ____ / __/ / /_ ___   ____ ___
 / /_/ /\ \ _\ \     / /_/ // _ \ / _ \(_-<_\ \  / -_)/ __/_\ \  / __// _ \ / __// -_)
 \____/___//___/     \____/ \___// .__/___/___/  \__/ \__//___/  \__/ \___//_/   \__/
                                /_/

# 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
Vitrine OopsSec Store

Table des matières


[!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 intentionnellement vulnérable (XSS, CSRF, IDOR, attaques JWT, path traversal, injection SQL, etc.)
  • 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 d'apprentissage structurée
  • Documentation des vulnérabilités et procédures pas à pas communautaires pour chaque défi
  • Une salle TryHackMe guidéeThe Summer Audit, 8 tâches et 7 flags, comme rampe d'accès narrative pour les débutants
  • Tests automatisés qui vérifient que les exploits fonctionnent toujours (les PR qui corrigent accidentellement une vulnérabilité échoueront au CI)

Pourquoi OopsSec Store ?

OopsSec Store est la seule application web intentionnellement vulnérable construite avec Next.js et React. La pile technologique que vous rencontrerez réellement en production. Et la surface d'attaque de l'ère de l'IA fait partie du programme principal, pas une réflexion après coup : injection de prompts, empoisonnement d'outils MCP, backdoors d'agents de codage IA, et une chaîne d'attaque de la supply chain npm simulée de bout en bout.

OopsSec StoreJuice ShopDVWA
Pile technologiqueNext.js · React · PrismaNode.js · Express · AngularPHP · MySQL
Installationnpx create-oss-store (< 1 min) / DockerDocker / npmDocker / LAMP manuel
Flags CTF✅ Intégrés✅ Mode CTF optionnel
Feuille de route d'apprentissage guidée✅ 1 feuille de route, 11 chapitres, 36 flags❌ Tableau de scores uniquementPartielle (niveaux de sécurité)
Procédure pas à pas pour chaque défi✅ Guide compagnonPartielle (indices)
Injection de prompts LLM✅ Branchez une clé API gratuite✅ v20+, apportez et configurez votre propre LLM
Empoisonnement d'outils MCP
Backdoor d'agent de codage IA (fichier de règles empoisonné)
Chaîne d'attaque de la supply chain✅ Simulée de bout en bout : typosquat npm → backdoor de règlesPartielle — identification uniquement
Défis basés sur de vraies CVE
Hall of Fame pour les joueurs

Dernière vérification juin 2026, contre 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

Ceci crée le fichier .env, installe les dépendances, configure la base de données SQLite, la remplit avec les flags CTF, et démarre l'application sur le port 3000.

Docker

Aucun Node.js requis. Juste Docker.

127.0.0.1:3000:3000 garde le laboratoire accessible uniquement depuis votre propre machine. Utilisez -p 3000:3000 simple uniquement sur une VM isolée que vous contrôlez.

Depuis Docker Hub (le plus rapide)

docker run -p 127.0.0.1:3000:3000 leogra/oss-oopssec-store

Pour conserver les données entre les redémarrages :

docker run -p 127.0.0.1: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 avec les scripts d'aide npm :

npm run docker:up       # Démarre en arrière-plan (construit l'image au premier lancement)
npm run docker:logs     # Suit les journaux du conteneur
npm run docker:down     # Arrête le conteneur
npm run docker:reset    # Efface les données et redémarre à neuf

La base de données s'initialise au premier démarrage. Les données persistent entre les redémarrages via les 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 à hall-of-fame/data.json et votre profil apparaîtra sur la page /hall-of-fame de l'application.

Communauté

Questions, solutions et retours se trouvent dans Discussions.

Où allerPour quoi
🧩 Bloqué sur un défiL'exploit ne se déclenche pas, le flag ne se valide pas
🛠️ Installation et configurationProblèmes Docker, npm ou Node pour démarrer le lab
🏆 Montrez votre résolutionUne route vers le flag non couverte par la procédure
💡 Idées de défisUne classe de vulnérabilité qui mérite d'être ajoutée au programme
🎓 Enseigner avec OopsSecUtiliser le lab avec une classe, un bootcamp ou une équipe
IssuesBugs dans le lab lui-même, et uniquement ceux-là

Structure du projet

DossierDescription
app/Next.js App Router : pages, routes API, composants React
app/api/Points de terminaison de l'API REST (auth, panier, commandes, produits, flags, etc.)
app/components/Composants d'interface 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 remplissage et flags.ts — les flags CTF et leurs indices
public/Ressources statiques et charges utiles d'exploit (ex. démo CSRF)
hooks/Hooks React personnalisés (authentification, etc.)
scripts/Scripts d'installation et d'automatisation
docs/Site de documentation statique avec procédures 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 utiles malveillantes inertes pour les défis de 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 flux d'exploitation complets

Activité récente Time period

Timeline graph Trending topics

Issue status graph Pull request status graph

Tests

Le projet inclut des tests de régression de sécurité qui garantissent que toutes les chaînes d'exploitation et les flags fonctionnent toujours. Ces tests valident délibérément un comportement non sécurisé. Ils s'exécutent à chaque PR, donc si vous corrigez accidentellement une vulnérabilité, le CI le détectera.

Exécution des tests

# Tests unitaires (fonctions utilitaires : hachage MD5, JWT, filtres d'entrée)
npm run test:unit

# Tests d'exploitation API (nécessite un serveur en cours d'exécution)
npm run test:api

# Tests d'exploitation E2E (nécessite un serveur en cours d'exécution)
npm run test:e2e

# Ouvrir le mode interactif Cypress
npm run test:e2e:open

# Tous les tests
npm run test:ci

Avertissement

[!CAUTION] Ce projet est destiné à l'éducation et aux tests de sécurité autorisés uniquement. Il contient des vulnérabilités intentionnelles et des configurations non sécurisées. Les auteurs ne sont pas responsables de toute utilisation abusive, de tout dommage ou accès non autorisé. Utilisez-le dans des environnements isolés.

Contribuer

OSS – OopsSec Store est sous licence MIT. Les contributions sont les bienvenues.

Façons de contribuer :

  • Ajouter de nouveaux défis de sécurité
  • Rédiger ou améliorer les procédures pas à pas
  • Étendre l'application
  • Signaler et corriger les bugs
  • Améliorer la documentation

Consultez la Feuille de route pour les travaux planifiés, ou attrapez une bonne première issue.

Vous avez trouvé tous les flags ? Partagez vos procédures pas à pas sur le site de documentation.

Pour les bugs ou suggestions, ouvrez une Issue GitHub. Consultez CONTRIBUTING.md pour les directives.

🎓 Utiliser 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 programmes, une FAQ de déploiement et un modèle de rapport étudiant. Vous construisez vos propres outils autour du programme ? Le tout est publié comme un flux lisible par machine à challenges.json, régénéré à chaque déploiement de la documentation.

Repography logo / Principaux contributeurs

Top contributors


Auteur : kOaDT
Projet : OopsSec Store
Contact : [email protected]

Licence : MIT

Ne supprimez ni ne modifiez le fichier LICENSE dans votre fork.

Catégories