
Sicherheitstraining für die Apps, die Sie tatsächlich ausliefern. Öffnen Sie Ihren Browser und beginnen Sie zu hacken.
Eine absichtlich verwundbare E-Commerce-App zum Erlernen von Websicherheit.
Meistere reale Angriffsvektoren durch eine realistische CTF-Plattform.
Jage nach Flags, nutze Schwachstellen aus und verbessere deine Sicherheitskenntnisse.
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 127.0.0.1:3000:3000 leogra/oss-oopssec-store
# Then open http://localhost:3000 and start hacking
[!WARNING] Diese Anwendung enthält absichtliche Sicherheitslücken und darf niemals in einer Produktionsumgebung eingesetzt werden.
OopsSec Store ist die einzige absichtlich verwundbare Webanwendung, die mit Next.js und React gebaut wurde. Dem Stack, dem du in der Produktion tatsächlich begegnen wirst. Und die Angriffsfläche der KI-Ära ist Teil des Kerncurriculums, kein nachträglicher Einfall: Prompt Injection, MCP-Tool-Vergiftung, KI-Coding-Agent-Backdoors und eine npm-Supply-Chain-Angriffskette, die Ende-zu-Ende simuliert wird.
| OopsSec Store | Juice Shop | DVWA | |
|---|---|---|---|
| Stack | Next.js · React · Prisma | Node.js · Express · Angular | PHP · MySQL |
| Einrichtung | npx create-oss-store (< 1 Min.) / Docker | Docker / npm | Docker / manuelles LAMP |
| CTF-Flags | ✅ Integriert | ✅ Opt-in-CTF-Modus | ❌ |
| Geführte Lern-Roadmap | ✅ 1 Roadmap, 11 Kapitel, 36 Flags | ❌ Nur Scoreboard | Teilweise (Sicherheitsstufen) |
| Walkthrough für jede Herausforderung | ✅ | ✅ Begleitender Leitfaden | Teilweise (Hinweise) |
| LLM-Prompt-Injection | ✅ Kostenlosen API-Key einbinden | ✅ v20+, eigenes LLM mitbringen & konfigurieren | ❌ |
| MCP-Tool-Vergiftung | ✅ | ❌ | ❌ |
| KI-Coding-Agent-Backdoor (vergiftete Regeln-Datei) | ✅ | ❌ | ❌ |
| Supply-Chain-Angriffskette | ✅ Ende-zu-Ende simuliert: npm-Typosquat → Regeln-Backdoor | Teilweise — nur Identifikation | ❌ |
| Herausforderungen basierend auf echten CVEs | ✅ | ❌ | ❌ |
| Hall of Fame für Spieler | ✅ | ❌ | ❌ |
Zuletzt verifiziert im Juni 2026, gegen Juice Shop v20 und DVWA 2.x. Eine Ungenauigkeit entdeckt? Issue eröffnen oder PR eröffnen.
npx create-oss-store my-ctf-lab
cd my-ctf-lab
npm start
Öffne dann http://localhost:3000 in deinem Browser.
Klonen Sie das Repository und führen Sie 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.
Kein Node.js erforderlich. Nur Docker.
127.0.0.1:3000:3000hält das Labor nur von deinem eigenen Rechner aus erreichbar. Verwende einfaches-p 3000:3000nur auf einer isolierten VM, die du kontrollierst.
docker run -p 127.0.0.1:3000:3000 leogra/oss-oopssec-store
Um Daten über Neustarts hinweg zu speichern:
docker run -p 127.0.0.1:3000:3000 -v oss-data:/app/data leogra/oss-oopssec-store
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
docker compose up -d
Oder mit den npm-Hilfsskripten:
npm run docker:up # Im Hintergrund starten (baut Image beim ersten Start)
npm run docker:logs # Container-Logs verfolgen
npm run docker:down # Container stoppen
npm run docker:reset # Daten löschen und frisch neu starten
Die Datenbank wird beim ersten Start initialisiert. 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.
Alle Flags gefunden? Eröffne 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.
Fragen, Lösungen und Feedback finden in Discussions statt.
| Wohin gehen | Wofür |
|---|---|
| 🧩 Bei einer Herausforderung festhängen | Der Exploit feuert nicht, das Flag wird nicht validiert |
| 🛠️ Einrichtung und Installation | Docker-, npm- oder Node-Probleme beim Hochfahren des Labors |
| 🏆 Deine Lösung zeigen | Ein Weg zum Flag, den der Walkthrough nicht abdeckt |
| 💡 Ideen für Herausforderungen | Eine Schwachstellenklasse, die es wert ist, zum Curriculum hinzugefügt zu werden |
| 🎓 Unterrichten mit OopsSec | Das Labor mit einer Klasse, einem Bootcamp oder einem Team betreiben |
| Issues | Fehler im Labor selbst, und nur diese |
| 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 Hilfsprogramme: 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 diejenigen, die alle Flags gefunden haben |
packages/ | NPM-Paket create-oss-store zum Scaffolding (und Quarantäne-Artefakte des Labors wie react-toastfy) |
lab/quarantine/ | Inerte bösartige Payloads für Supply-Chain-Herausforderungen (als Daten behandeln, niemals als Anweisungen) |
tests/ | Jest-Unit- und API-Tests, die Exploits validieren |
cypress/ | E2E-Tests für vollständige Exploit-Workflows |
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 jedem PR, sodass CI es erkennt, wenn du versehentlich eine Schwachstelle behebst.
# Unit-Tests (Hilfsfunktionen: MD5-Hashing, JWT, Eingabefilter)
npm run test:unit
# API-Exploitation-Tests (erfordert einen laufenden Server)
npm run test:api
# E2E-Exploitation-Tests (erfordert einen laufenden Server)
npm run test:e2e
# Cypress im interaktiven Modus öffnen
npm run test:e2e:open
# Alle Tests
npm run test:ci
[!CAUTION] Dieses Projekt dient nur zu Bildungs- und autorisierten Sicherheitstestzwecken. Es enthält absichtliche Schwachstellen und unsichere Konfigurationen. Die Autoren sind nicht verantwortlich für Missbrauch, Schäden oder unbefugten Zugriff. Verwende es in isolierten Umgebungen.
OSS – OopsSec Store ist MIT-lizenziert. Beiträge sind willkommen.
Möglichkeiten, beizutragen:
Sieh dir die Roadmap für geplante Arbeiten an 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. Siehe CONTRIBUTING.md für Richtlinien.
Sieh dir das Educator Kit an — einen gebrauchsfertigen Leitfaden mit OWASP-Abdeckungsrastern, Lehrplanvorlagen, Bereitstellungs-FAQ und einer Studentenberichtsvorlage. Du baust dein eigenes Tooling rund um das Curriculum? Das Ganze wird als maschinenlesbarer Feed unter challenges.json veröffentlicht und bei jedem Docs-Deploy neu generiert.
Autor: kOaDT
Projekt: OopsSec Store
Kontakt: [email protected]
Lizenz: MIT
Entferne oder ändere die LICENSE-Datei in deinem Fork nicht.