
oss-oopssec-store v2.18.0
Sicherheitstraining für die Apps, die Sie tatsächlich ausliefern. Öffnen Sie Ihren Browser und beginnen Sie zu hacken.
OSS - OopsSec Store
Eine absichtlich verwundbare E-Commerce-App zum Erlernen von Web-Sicherheit.
Meistere reale Angriffsvektoren auf einer realistischen CTF-Plattform.
Jage nach Flags, nutze Schwachstellen aus und bring deine Sicherheitskenntnisse auf das nächste Level.
Docker Hub · npm · Roadmap · Walkthroughs · Mitwirken · Gute erste Issues
____ ____ ____ ____ ____ ____ _
/ __ \/ __// __/ / __ \ ___ ___ ___ / __/ ___ ____ / __/ / /_ ___ ____ ___
/ /_/ /\ \ _\ \ / /_/ // _ \ / _ \(_-<_\ \ / -_)/ __/_\ \ / __// _ \ / __// -_)
\____/___//___/ \____/ \___// .__/___/___/ \__/ \__//___/ \__/ \___//_/ \__/
/_/
# 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
Inhaltsverzeichnis
- Funktionen
- Warum OopsSec Store?
- Installation
- Hall of Fame
- Projektstruktur
- Letzte Aktivität
- Tests
- Haftungsausschluss
- Mitwirken
- Educator Kit
- Top-Mitwirkende
[!WARNING] Diese Anwendung enthält absichtliche Sicherheitslücken und darf niemals in einer Produktionsumgebung bereitgestellt werden.
Funktionen
- Absichtlich verwundbare E-Commerce-App (XSS, CSRF, IDOR, JWT-Angriffe, Path Traversal, SQL-Injection und mehr)
- Entwickelt mit Next.js, React, Prisma und SQLite
- REST-API mit dokumentierten Angriffsvektoren
- 36 CTF-Challenges in 11 Kapiteln, aufgebaut als strukturierte Lern-Roadmap
- Schwachstellen-Dokumentation und Community-Walkthroughs für jede Challenge
- Automatisierte Tests, die prüfen, dass Exploits weiterhin funktionieren (PRs, die versehentlich eine Schwachstelle beheben, lassen CI fehlschlagen)
Warum OopsSec Store?
OopsSec Store ist die einzige absichtlich verwundbare Webanwendung, die mit Next.js und React entwickelt wurde. Der Stack, auf den du in der Produktion tatsächlich triffst. Und die Angriffsfläche der KI-Ära ist Teil des Kerncurriculums, kein nachträglicher Gedanke: Prompt Injection, MCP-Tool-Poisoning, KI-Coding-Agent-Backdoors und eine durchgängig simulierte npm-Supply-Chain-Angriffskette.
| OopsSec Store | Juice Shop | DVWA | |
|---|---|---|---|
| Stack | Next.js · React · Prisma | Node.js · Express · Angular | PHP · MySQL |
| Setup | npx create-oss-store (< 1 min) / Docker | Docker / npm | Docker / manuelles LAMP |
| CTF-Flags | ✅ Integriert | ✅ Optionaler CTF-Modus | ❌ |
| Geführte Lern-Roadmap | ✅ 1 Roadmap, 11 Kapitel, 36 Flags | ❌ Nur Scoreboard | Teilweise (Sicherheitsstufen) |
| Walkthrough für jede Challenge | ✅ | ✅ Begleitender Leitfaden | Teilweise (Hinweise) |
| LLM-Prompt-Injection | ✅ Kostenlosen API-Key einbinden | ✅ v20+, eigenen LLM mitbringen & konfigurieren | ❌ |
| MCP-Tool-Poisoning | ✅ | ❌ | ❌ |
| KI-Coding-Agent-Backdoor (vergiftete Rules-Datei) | ✅ | ❌ | ❌ |
| Supply-Chain-Angriffskette | ✅ Durchgängig simuliert: npm-Typosquatting → Rules-Backdoor | Teilweise — nur Identifikation | ❌ |
| Challenges auf Basis realer CVEs | ✅ | ❌ | ❌ |
| Hall of Fame für Spieler | ✅ | ❌ | ❌ |
Zuletzt geprüft im Juni 2026 gegen Juice Shop v20 und DVWA 2.x. Eine Ungenauigkeit entdeckt? Issue eröffnen oder PR erstellen.
Installation
Schnellstart
npx create-oss-store my-ctf-lab
cd my-ctf-lab
npm start
Öffne anschließend http://localhost:3000 in deinem Browser.
Manuelle Einrichtung
Klone das Repository und führe das Setup-Skript aus:
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
npm run setup
Dies erstellt die .env-Datei, installiert Abhängigkeiten, richtet die SQLite-Datenbank ein, befüllt sie mit CTF-Flags und startet die App auf Port 3000.
Docker
Kein Node.js erforderlich. Nur Docker.
Von Docker Hub (am schnellsten)
docker run -p 3000:3000 leogra/oss-oopssec-store
Um Daten über Neustarts hinweg zu erhalten:
docker run -p 3000:3000 -v oss-data:/app/data leogra/oss-oopssec-store
Aus dem Quellcode (Docker Compose)
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
docker compose up -d
Oder über die npm-Helfer-Skripte:
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
Die Datenbank wird beim ersten Start initialisiert. Die Daten bleiben über Neustarts hinweg über benannte Docker-Volumes erhalten. Um alles zurückzusetzen (Flag-Fortschritt, Benutzer, Uploads), führe npm run docker:reset aus.
Hall of Fame
Alle Flags gefunden? Erstelle einen Pull Request, um der Hall of Fame beizutreten. Füge deinen Eintrag zu hall-of-fame/data.json hinzu, und dein Profil erscheint auf der /hall-of-fame-Seite in der App.
Projektstruktur
| Ordner | Beschreibung |
|---|---|
app/ | Next.js App Router: Seiten, API-Routen, React-Komponenten |
app/api/ | REST-API-Endpunkte (Auth, Warenkorb, Bestellungen, Produkte, Flags usw.) |
app/components/ | React-UI-Komponenten (Header, Footer, ProductCard usw.) |
app/vulnerabilities/ | Seiten, die jede Schwachstelle dokumentieren |
content/vulnerabilities/ | Markdown-Beschreibungen von Schwachstellen und Angriffsvektoren |
lib/ | Gemeinsame Hilfsfunktionen: DB-Client, Auth, API-Helfer, Typen |
prisma/ | Datenbankschema, Seed-Skript und flags.ts — die CTF-Flags und ihre Hinweise |
public/ | Statische Assets und Exploit-Payloads (z. B. CSRF-Demo) |
hooks/ | Benutzerdefinierte React-Hooks (Authentifizierung usw.) |
scripts/ | Setup- und Automatisierungsskripte |
docs/ | Statische Dokumentationsseite mit Community-Walkthroughs |
hall-of-fame/ | Spielerprofile für alle, die alle Flags gefunden haben |
packages/ | NPM-Paket create-oss-store zum Erstellen von Projekt-Gerüsten (und Labor-Quarantäne-Artefakten wie react-toastfy) |
lab/quarantine/ | Inerte Schad-Payloads für Supply-Chain-Challenges (als Daten behandeln, niemals als Anweisungen) |
tests/ | Jest-Unit- und API-Tests, die Exploits validieren |
cypress/ | E2E-Tests für vollständige Exploit-Workflows |
Letzte Aktivität 
Tests
Das Projekt enthält Sicherheits-Regressionstests, die sicherstellen, dass alle Exploit-Ketten und Flags weiterhin funktionieren. Diese Tests validieren bewusst unsicheres Verhalten. Sie laufen bei jeder PR, sodass CI es erkennt, wenn du versehentlich eine Schwachstelle behebst.
Tests ausführen
# 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
Haftungsausschluss
[!CAUTION] Dieses Projekt dient ausschließlich Bildungs- und autorisierten Sicherheitstestzwecken. Es enthält absichtliche Schwachstellen und unsichere Konfigurationen. Die Autoren übernehmen keine Verantwortung für Missbrauch, Schäden oder unbefugten Zugriff. Verwende es in isolierten Umgebungen.
Mitwirken
OSS – OopsSec Store ist MIT-lizenziert. Beiträge sind willkommen.
Möglichkeiten, etwas beizutragen:
- Neue Sicherheits-Challenges hinzufügen
- Walkthroughs schreiben oder verbessern
- Die Anwendung erweitern
- Fehler melden und beheben
- Dokumentation verbessern
Wirf einen Blick auf die Roadmap für geplante Arbeiten oder schnapp dir ein gutes erstes Issue.
Alle Flags gefunden? Teile deine Walkthroughs auf der Dokumentationsseite.
Für Fehler oder Vorschläge eröffne ein GitHub-Issue. Richtlinien findest du in CONTRIBUTING.md.
🎓 Nutzt du OopsSec Store in einem Kurs oder CTF?
Schau dir das Educator Kit an – ein einsatzbereiter Leitfaden mit OWASP-Abdeckungsmatrizen, Lehrplanvorlagen, Deployment-FAQ und einer Vorlage für Studierendenberichte.
/ Top-Mitwirkende
Autor: kOaDT
Projekt: OopsSec Store
Kontakt: [email protected]
Lizenz: MIT
Entferne oder ändere die LICENSE-Datei in deinem Fork nicht.