Назад к обновлениям
New releaseAug 12, 2026

oss-oopssec-store v2.18.0

Обучение безопасности для реально выпускаемых приложений. Откройте браузер и начинайте взламывать.

Поделиться

OSS - OopsSec Store

Специально уязвимое e-commerce приложение для изучения веб-безопасности.
Осваивайте реальные векторы атак на реалистичной CTF-платформе.
Ищите флаги, эксплуатируйте уязвимости и прокачивайте свои навыки в области безопасности.

Docker Hub · npm · Дорожная карта · Прохождения · Участие в разработке · Простые задачи для старта

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 3000:3000 leogra/oss-oopssec-store

# Then open http://localhost:3000 and start hacking

Содержание


[!WARNING] Это приложение содержит преднамеренные уязвимости безопасности и ни в коем случае не должно разворачиваться в производственной среде.

Возможности

  • Специально уязвимое e-commerce приложение (XSS, CSRF, IDOR, JWT-атаки, обход пути, SQL-инъекции и другое)
  • Построено на Next.js, React, Prisma и SQLite
  • REST API с документированными векторами атак
  • 36 CTF-заданий в 11 главах, организованных в виде структурированной дорожной карты обучения
  • Документация по уязвимостям и прохождения сообщества для каждого задания
  • Автоматические тесты, проверяющие, что эксплойты по-прежнему работают (PR, случайно исправляющие уязвимость, не пройдут CI)

Почему OopsSec Store?

OopsSec Store — единственное специально уязвимое веб-приложение, построенное на Next.js и React. Это тот стек, с которым вы действительно столкнётесь в продакшене. А поверхность атак эпохи ИИ является частью основной учебной программы, а не дополнением: prompt-инъекции, отравление MCP-инструментов, бэкдоры в ИИ-агентах кодинга и цепочка supply-chain атак через npm, смоделированная от начала до конца.

OopsSec StoreJuice ShopDVWA
СтекNext.js · React · PrismaNode.js · Express · AngularPHP · MySQL
Установкаnpx create-oss-store (< 1 мин) / DockerDocker / npmDocker / ручной LAMP
CTF-флаги✅ Встроены✅ Опциональный CTF-режим
Структурированная дорожная карта обучения✅ 1 дорожная карта, 11 глав, 36 флагов❌ Только таблица рекордовЧастично (уровни безопасности)
Прохождение для каждого задания✅ Сопутствующее руководствоЧастично (подсказки)
Prompt-инъекции в LLM✅ Подключите бесплатный API-ключ✅ v20+, подключите и настройте свою LLM
Отравление MCP-инструментов
Бэкдор в ИИ-агенте кодинга (отравленный файл правил)
Цепочка supply-chain атак✅ Смоделирована полностью: typosquat-атака npm → бэкдор в правилахЧастично — только выявление
Задания на основе реальных CVE
Зал славы для игроков

Последняя проверка — июнь 2026 года, против Juice Shop v20 и DVWA 2.x. Заметили неточность? Откройте issue или отправьте PR.

Установка

Быстрый старт

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

Затем откройте в браузере http://localhost:3000.

Настройка вручную

Склонируйте репозиторий и запустите скрипт настройки:

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

Этот скрипт создаёт файл .env, устанавливает зависимости, настраивает базу данных SQLite, наполняет её CTF-флагами и запускает приложение на порту 3000.

Docker

Node.js не требуется. Нужен только Docker.

Из Docker Hub (самый быстрый способ)

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

Для сохранения данных между перезапусками:

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

Из исходного кода (Docker Compose)

git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
docker compose up -d

Или с помощью вспомогательных npm-скриптов:

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

База данных инициализируется при первом запуске. Данные сохраняются между перезапусками через именованные тома Docker. Чтобы сбросить всё (прогресс по флагам, пользователей, загрузки), выполните npm run docker:reset.

Зал славы

Нашли все флаги? Откройте pull request, чтобы попасть в Зал славы. Добавьте свою запись в hall-of-fame/data.json, и ваш профиль появится на странице /hall-of-fame в приложении.

Структура проекта

ПапкаОписание
app/Next.js App Router: страницы, API-маршруты, React-компоненты
app/api/REST API-эндпоинты (auth, cart, orders, products, flags и т.д.)
app/components/React UI-компоненты (Header, Footer, ProductCard и т.д.)
app/vulnerabilities/Страницы с документацией по каждой уязвимости
content/vulnerabilities/Markdown-описания уязвимостей и векторов атак
lib/Общие утилиты: DB-клиент, аутентификация, API-хелперы, типы
prisma/Схема базы данных, seed-скрипт и flags.ts — CTF-флаги и подсказки к ним
public/Статические ресурсы и эксплойт-пейлоады (например, CSRF-демо)
hooks/Пользовательские React-хуки (аутентификация и т.д.)
scripts/Скрипты установки и автоматизации
docs/Статический сайт документации с прохождениями от сообщества
hall-of-fame/Профили игроков, нашедших все флаги
packages/NPM-пакет create-oss-store для создания каркаса (а также карантинные артефакты лаборатории, такие как react-toastfy)
lab/quarantine/Инертные вредоносные пейлоады для supply-chain заданий (рассматривайте как данные, а не как инструкции)
tests/Jest-модульные и API-тесты, проверяющие эксплойты
cypress/E2E-тесты для полных сценариев эксплуатации

Недавняя активность Time period

Timeline graph Trending topics

Issue status graph Pull request status graph

Тестирование

Проект включает регрессионные тесты безопасности, которые проверяют, что все цепочки эксплойтов и флаги по-прежнему работают. Эти тесты намеренно проверяют небезопасное поведение. Они запускаются в каждом PR, поэтому если вы случайно залатаете уязвимость, CI это обнаружит.

Запуск тестов

# 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

Отказ от ответственности

[!CAUTION] Этот проект предназначен только для образовательных целей и санкционированного тестирования безопасности. Он содержит намеренные уязвимости и небезопасные конфигурации. Авторы не несут ответственности за любое неправомерное использование, ущерб или несанкционированный доступ. Используйте его в изолированных средах.

Участие в разработке

OSS – OopsSec Store распространяется по лицензии MIT. Вклад приветствуется.

Способы внести вклад:

  • Добавлять новые задания по безопасности
  • Писать или улучшать прохождения
  • Расширять приложение
  • Сообщать об ошибках и исправлять их
  • Улучшать документацию

Смотрите дорожную карту с запланированными работами или возьмите простую задачу для старта.

Нашли все флаги? Поделитесь своими прохождениями на сайте документации.

Об ошибках и предложениях сообщайте через GitHub Issue. Рекомендации см. в CONTRIBUTING.md.

🎓 Используете OopsSec Store в курсе или CTF?

Ознакомьтесь с набором для преподавателей — готовым руководством с таблицами покрытия OWASP, шаблонами учебных программ, FAQ по развёртыванию и шаблоном отчёта для студентов.

Repography logo / Ведущие контрибьюторы

Top contributors


Автор: kOaDT
Проект: OopsSec Store
Контакт: [email protected]

Лицензия: MIT

Не удаляйте и не изменяйте файл LICENSE в вашем форке.

Категории