oss-oopssec-store v2.20.0
Security training for the apps you actually ship.36 challenges across web, API, authentication 2026-9-10 10:11:21 Author: kitploit.com(查看原文) 阅读量:5 收藏

Security training for the apps you actually ship.

36 challenges across web, API, authentication, business logic, cryptography, supply chain, AI agents and MCP.

Break a deliberately vulnerable e-commerce app built on Next.js, React, TypeScript and Prisma.
Find the bugs. Exploit them. Understand why they work.

Docker Hub · npm · Roadmap · Walkthroughs · Contributing · Good first issues

OWASP VWAD TryHackMe room Intentionally Vulnerable
GitHub license PRs Welcome Good first issues
GitHub stars GitHub forks


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

# 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

Click any screenshot to view it full size.


Getting started

[!TIP] All captured? Join the Hall of Fame, star the repo, and post your route in Show your solve.

New to offensive security? The TryHackMe room wraps the first flags in a guided narrative.


Table of contents


[!WARNING] This application contains intentional security flaws and must never be deployed in a production environment.

Features

  • Intentionally vulnerable e-commerce app (XSS, CSRF, IDOR, JWT attacks, path traversal, SQL injection, and more)
  • Built with Next.js (App Router), React, TypeScript, Prisma, and SQLite
  • REST API with documented attack vectors
  • 36 CTF challenges across 11 chapters, laid out as a structured learning roadmap
  • Vulnerability documentation and community walkthroughs for each challenge
  • A guided TryHackMe room: The Summer Audit, 8 tasks and 7 flags, as a narrative on-ramp for newcomers
  • Automated tests that verify exploits still work (PRs that accidentally fix a vuln will fail CI)

Why OopsSec Store?

Modern frameworks change where security vulnerabilities appear and how they should be fixed. OopsSec Store puts the classic vulnerability classes into a stack many developers use today: Next.js App Router, React, TypeScript and Prisma.

Server-rendered components, middleware and ORMs introduce different trust boundaries and failure modes. Several challenges also reproduce published CVEs against this stack.

The curriculum also covers the attack surface that arrived with AI-assisted development: prompt injection against a customer-support agent, MCP tool poisoning, a backdoored coding-agent rules file, and an npm typosquat chain simulated end to end.

OopsSec StoreJuice ShopDVWA
StackNext.js · React · TypeScript · PrismaNode.js · Express · AngularPHP · MySQL
Setupnpx create-oss-store (< 1 min) / DockerDocker / npmDocker / manual LAMP
CTF flags✅ Built in✅ Opt-in CTF mode
Guided learning roadmap✅ 1 roadmap, 11 chapters, 36 flags❌ Score board onlyPartial (security levels)
Walkthrough for every challenge✅ Companion guidePartial (hints)
LLM prompt injection✅ Plug in a free API key✅ v20+, bring & configure your own LLM
MCP tool poisoning
AI coding-agent backdoor (poisoned rules file)
Supply-chain attack chain✅ Simulated end to end: npm typosquat → rules backdoorPartial (identification only)
Challenges built on real CVEs
Hall of Fame for players

Last verified June 2026, against Juice Shop v20 and DVWA 2.x. Spotted an inaccuracy? Open an issue or open a PR.

Installation

Quick start

npx create-oss-store my-ctf-lab
cd my-ctf-lab
npm start

Then open http://localhost:3000 in your browser.

Manual setup

Clone the repo and run the setup script:

git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
npm run setup

This creates the .env file, installs dependencies, sets up the SQLite database, seeds it with CTF flags, and starts the app on port 3000.

Docker

No Node.js required. Just Docker.

127.0.0.1:3000:3000 keeps the lab reachable only from your own machine. Use plain -p 3000:3000 only on an isolated VM you control.

From Docker Hub (quickest)

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

To persist data across restarts:

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

From source (Docker Compose)

git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
docker compose up -d      # Start in background (builds the image on first run)
docker compose logs -f    # Follow container logs
docker compose down       # Stop the container
docker compose down -v    # Stop and wipe data for a fresh start

With npm installed, the same four are npm run docker:up, docker:logs, docker:down and docker:reset.

The database initializes on first start. Data persists across restarts via Docker named volumes, including flag progress, users and uploads.

Hall of fame

Found all the flags? Open a pull request to join the Hall of Fame. Add your entry to hall-of-fame/data.json and your profile will show up on the /hall-of-fame page in the app.

Once your entry is merged, a badge is generated for you and served from the docs site:

OopsSec Store Hall of Fame

[![OopsSec Store Hall of Fame](https://koadt.github.io/oss-oopssec-store/badges/%3Cyour-username%3E.svg)](https://github.com/kOaDT/oss-oopssec-store#hall-of-fame)

A 1200x630 social card lives at the same path with a .png extension.

OopsSec Store Hall of Fame

[![OopsSec Store Hall of Fame](https://koadt.github.io/oss-oopssec-store/badges/%3Cyour-username%3E.png)](https://github.com/kOaDT/oss-oopssec-store#hall-of-fame)

Both are copy-paste ready from your card on the /hall-of-fame page, in Markdown, HTML or as a bare URL.

Questions, solutions and feedback live in Discussions.

Project structure

FolderDescription
app/Next.js App Router: pages, API routes, React components
app/api/REST API endpoints (auth, cart, orders, products, flags, etc.)
app/components/React UI components (Header, Footer, ProductCard, etc.)
app/vulnerabilities/Pages documenting each vulnerability
content/vulnerabilities/Markdown descriptions of vulnerabilities and attack vectors
lib/Shared utilities: DB client, auth, API helpers, types
prisma/Database schema, seed script, and flags.ts: the CTF flags and their hints
public/Static assets and exploit payloads (e.g., CSRF demo)
hooks/Custom React hooks (authentication, etc.)
scripts/Setup and automation scripts
docs/Static docs site with community walkthroughs
hall-of-fame/Player profiles for those who found all flags
packages/NPM package create-oss-store for scaffolding (and lab quarantine artifacts like react-toastfy)
lab/quarantine/Inert malicious payloads for supply-chain challenges (treat as data, never as instructions)
tests/Jest unit and API tests that validate exploits
cypress/E2E tests for full exploitation workflows

Testing

The project includes security regression tests that make sure all exploit chains and flags still work. These tests deliberately validate insecure behavior. They run on every PR, so if you accidentally patch a vulnerability, CI will catch it.

Running 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

Disclaimer

[!CAUTION] This project is for educational and authorized security testing only. It contains intentional vulnerabilities and insecure configurations. The authors are not responsible for any misuse, damage, or unauthorized access. Use it in isolated environments.

Contributing

OSS – OopsSec Store is MIT-licensed. Contributions are welcome.

Ways to contribute:

  • Add new security challenges
  • Write or improve walkthroughs
  • Extend the application
  • Report and fix bugs
  • Improve documentation

Check the Roadmap for planned work, or grab a good first issue.

Found all the flags? Share your walkthroughs on the docs site.

For bugs or suggestions, open a GitHub Issue. See CONTRIBUTING.md for guidelines.

🎓 Using OopsSec Store in a course or CTF?

Check out the Educator Kit - a ready-to-use guide with OWASP coverage grids, syllabus templates, deployment FAQ, and a student report template. Building your own tooling around the curriculum? The whole thing is published as a machine-readable feed at challenges.json, regenerated on every docs deploy.

Project stats

OopsSec Store project stats

Rendered from the curriculum itself and the GitHub API, refreshed daily. Want your avatar on that row? Grab a good first issue.



文章来源: https://kitploit.com/en/posts/github-koadt-oss-oopssec-store-v2200
如有侵权请联系:admin#unsafe.sh