
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
Formation en sécurité pour les applications que vous déployez réellement.
36 défis couvrant le web, les API, l'authentification, la logique métier, la cryptographie, la chaîne d'approvisionnement, les agents IA et MCP.
Piratez une application e-commerce délibérément vulnérable construite sur Next.js, React, TypeScript et Prisma.
Trouvez les failles. Exploitez-les. Comprenez pourquoi elles fonctionnent.
Docker Hub · npm · Roadmap · Walkthroughs · Contributing · Good first issues
/ __ / // / / __ \ ___ ___ ___ / / ___ ____ / / / / ___ ____ ___ / // /\ \ \ \ / // // _ \ / _ (-<\ \ / -)/ __/\ \ / // _ \ / // -) _//// __/ _// ./// _/ _/// _/ ___/// _/ /_/
Start with Node.js
npx create-oss-store my-ctf-lab && cd my-ctf-lab && npm start
Start with Docker
docker run -p 127.0.0.1:3000:3000 leogra/oss-oopssec-store
Then open http://localhost:3000 and start hacking
<div align="center">
<table>
<tr>
<td width="50%" align="center">
<a href="https://github.com/koadt/oss-oopssec-store/blob/main/public/oopssec-store-storefront-0.png"><img src="https://raw.githubusercontent.com/koadt/oss-oopssec-store/main/public/oopssec-store-storefront-0.png" alt="OopsSec Store storefront" width="100%"></a>
<br><sub><b>Storefront</b> · l'application e-commerce que vous attaquez</sub>
</td>
<td width="50%" align="center">
<a href="https://github.com/koadt/oss-oopssec-store/blob/main/public/oopssec-store-storefront-1.png"><img src="https://raw.githubusercontent.com/koadt/oss-oopssec-store/main/public/oopssec-store-storefront-1.png" alt="Player dashboard tracking captured flags" width="100%"></a>
<br><sub><b>Tableau de bord du joueur</b> · progression, difficulté et répartition par catégorie</sub>
</td>
</tr>
<tr>
<td width="50%" align="center">
<a href="https://github.com/koadt/oss-oopssec-store/blob/main/public/oopssec-store-storefront-2.png"><img src="https://raw.githubusercontent.com/koadt/oss-oopssec-store/main/public/oopssec-store-storefront-2.png" alt="OSSBot AI customer support assistant" width="100%"></a>
<br><sub><b>OSSBot</b> · l'assistant de support IA que vous ciblez par prompt injection</sub>
</td>
<td width="50%" align="center">
<a href="https://github.com/koadt/oss-oopssec-store/blob/main/public/oopssec-store-storefront-3.png"><img src="https://raw.githubusercontent.com/koadt/oss-oopssec-store/main/public/oopssec-store-storefront-3.png" alt="Challenge roadmap across 11 chapters" width="100%"></a>
<br><sub><b>Feuille de route</b> · les bugs qui arrivent en production</sub>
</td>
</tr>
</table>
<sub>Cliquez sur n'importe quelle capture d'écran pour la voir en taille réelle.</sub>
</div>
---
## Pour commencer
<table>
<tr>
<td width="56" align="center" valign="top"><img src="https://img.shields.io/badge/1-15803d?style=for-the-badge" alt="Step 1"></td>
<td valign="top">
<b>Démarrez le lab</b><br>
<code>npx create-oss-store my-ctf-lab && cd my-ctf-lab && npm start</code><br>
<sub>Ou <a href="#docker">lancez-le avec Docker</a>. La boutique démarre sur <a href="http://localhost:3000">localhost:3000</a>.</sub>
</td>
</tr>
<tr>
<td width="56" align="center" valign="top"><img src="https://img.shields.io/badge/2-15803d?style=for-the-badge" alt="Step 2"></td>
<td valign="top">
<b>Attaquez le challenge #1</b><br>
<a href="http://localhost:3000/vulnerabilities/public-env-variable">Fuite de variable d'environnement publique</a> : un secret de paiement que Next.js intègre au bundle client.<br>
<sub>Facile · 15–20 min · rien d'autre que les devtools de votre navigateur.</sub>
</td>
</tr>
<tr>
<td width="56" align="center" valign="top"><img src="https://img.shields.io/badge/3-15803d?style=for-the-badge" alt="Step 3"></td>
<td valign="top">
<b>Bloqué ? Lisez le walkthrough</b><br>
Chaque challenge en a un, de la vulnérabilité à l'exploit jusqu'au correctif.<br>
<sub>Le premier : <a href="https://koadt.github.io/oss-oopssec-store/posts/next-public-env-variable-leak/">Reading Secrets From the Browser: The NEXT_PUBLIC_ Trap in Next.js</a>.</sub>
</td>
</tr>
<tr>
<td width="56" align="center" valign="top"><img src="https://img.shields.io/badge/4-15803d?style=for-the-badge" alt="Step 4"></td>
<td valign="top">
<b>Validez le flag</b><br>
Collez <code>OSS{...}</code> dans le vérificateur de flag, le widget flottant présent sur chaque page.<br>
<sub>Votre <a href="http://localhost:3000/player-dashboard">tableau de bord de joueur</a> suit ce qu'il reste.</sub>
</td>
</tr>
<tr>
<td width="56" align="center" valign="top"><img src="https://img.shields.io/badge/5-15803d?style=for-the-badge" alt="Step 5"></td>
<td valign="top">
<b>Choisissez le suivant</b><br>
La <a href="https://koadt.github.io/oss-oopssec-store/roadmap">feuille de route</a> ordonne chaque challenge par chapitres : difficulté, estimation de temps, prérequis.<br>
<sub>Prenez la carte suivante, puis retour à l'étape 2. ↻</sub>
</td>
</tr>
</table>
> [!TIP]
> Tout capturé ? [Rejoignez le Hall of Fame](#hall-of-fame), mettez une étoile au repo, et publiez votre parcours dans [Show your solve](https://github.com/kOaDT/oss-oopssec-store/discussions/categories/show-your-solve).
<sub>Nouveau en sécurité offensive ? La <a href="https://tryhackme.com/jr/oopssecstorethesummeraudit">salle TryHackMe</a> enveloppe les premiers flags dans une narration guidée.</sub>
---
## Table des matières
- [Fonctionnalités](#features)
- [Pourquoi OopsSec Store ?](#why-oopssec-store)
- [Installation](#installation)
- [Démarrage rapide (npm)](#quick-start)
- [Docker](#docker)
- [Hall of fame](#hall-of-fame)
- [Communauté](#community)
- [Structure du projet](#project-structure)
- [Tests](#testing)
- [Avertissement](#disclaimer)
- [Contribuer](#contributing)
- [Kit pour enseignants](#-using-oopssec-store-in-a-course-or-ctf)
- [Statistiques du projet](#project-stats)
---
> [!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