
oss-oopssec-store v2.18.0
Обучение безопасности для реально выпускаемых приложений. Откройте браузер и начинайте взламывать.
OSS - OopsSec Store
Намеренно уязвимое e-commerce приложение для изучения веб-безопасности.
Освойте реальные векторы атак через реалистичную CTF-платформу.
Охотьтесь за флагами, эксплуатируйте уязвимости и прокачивайте свои навыки в области безопасности.
Docker Hub · npm · Roadmap · Walkthroughs · Contributing · Good first 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
Содержание
- Возможности
- Почему OopsSec Store?
- Установка
- Зал славы
- Сообщество
- Структура проекта
- Недавняя активность
- Тестирование
- Отказ от ответственности
- Вклад в проект
- Набор для преподавателей
- Топ контрибьюторов
[!WARNING] Это приложение содержит намеренные уязвимости в безопасности и никогда не должно разворачиваться в производственной среде.
Возможности
- Намеренно уязвимое e-commerce приложение (XSS, CSRF, IDOR, JWT-атаки, path traversal, SQL-инъекции и многое другое)
- Построено на Next.js, React, Prisma и SQLite
- REST API с документированными векторами атак
- 36 CTF-задач в 11 главах, оформленных как структурированная дорожная карта обучения
- Документация по уязвимостям и walkthroughs сообщества для каждого задания
- Гид по TryHackMe room — The Summer Audit, 8 задач и 7 флагов, как повествовательная отправная точка для новичков
- Автоматизированные тесты, проверяющие, что эксплойты всё ещё работают (PR, которые случайно исправляют уязвимость, провалят CI)
Почему OopsSec Store?
OopsSec Store — единственное намеренно уязвимое веб-приложение, построенное на Next.js и React. Это стек, с которым вы реально столкнётесь в продакшене. А поверхность атак эпохи ИИ является частью основной учебной программы, а не дополнением: prompt injection, отравление MCP-инструментов, бэкдоры для ИИ-агентов кодинга и цепочка атак на цепочку поставок npm, смоделированная от начала до конца.
| OopsSec Store | Juice Shop | DVWA | |
|---|---|---|---|
| Стек | Next.js · React · Prisma | Node.js · Express · Angular | PHP · MySQL |
| Установка | npx create-oss-store (< 1 мин) / Docker | Docker / npm | Docker / ручной LAMP |
| CTF-флаги | ✅ Встроены | ✅ Опциональный CTF-режим | ❌ |
| Гид по обучению | ✅ 1 дорожная карта, 11 глав, 36 флагов | ❌ Только таблица очков | Частично (уровни безопасности) |
| Walkthrough для каждого задания | ✅ | ✅ Сопутствующее руководство | Частично (подсказки) |
| LLM prompt injection | ✅ Подключите бесплатный API-ключ | ✅ v20+, принесите и настройте свою LLM | ❌ |
| Отравление MCP-инструментов | ✅ | ❌ | ❌ |
| Бэкдор для ИИ-агента кодинга (отравленный файл правил) | ✅ | ❌ | ❌ |
| Цепочка атак на цепочку поставок | ✅ Смоделирована от начала до конца: npm typosquat → бэкдор в правилах | Частично — только идентификация | ❌ |
| Задания на основе реальных 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.
127.0.0.1:3000:3000делает лабораторию доступной только с вашей собственной машины. Используйте обычный-p 3000:3000только на изолированной VM, которой вы управляете.
Из Docker Hub (самый быстрый способ)
docker run -p 127.0.0.1:3000:3000 leogra/oss-oopssec-store
Для сохранения данных между перезапусками:
docker run -p 127.0.0.1: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 # Запуск в фоне (собирает образ при первом запуске)
npm run docker:logs # Просмотр логов контейнера
npm run docker:down # Остановка контейнера
npm run docker:reset # Очистка данных и перезапуск с нуля
База данных инициализируется при первом запуске. Данные сохраняются между перезапусками через именованные тома Docker. Чтобы сбросить всё (прогресс по флагам, пользователей, загрузки), выполните npm run docker:reset.
Зал славы
Нашли все флаги? Откройте pull request, чтобы попасть в Зал славы. Добавьте свою запись в hall-of-fame/data.json, и ваш профиль появится на странице /hall-of-fame в приложении.
Сообщество
Вопросы, решения и отзывы — в Discussions.
| Куда обратиться | Зачем |
|---|---|
| 🧩 Застряли на задании | Эксплойт не срабатывает, флаг не валидируется |
| 🛠️ Установка и настройка | Проблемы с Docker, npm или Node при запуске лаборатории |
| 🏆 Покажите своё решение | Маршрут к флагу, не описанный в walkthrough |
| 💡 Идеи для заданий | Класс уязвимостей, который стоит добавить в учебную программу |
| 🎓 Преподавание с OopsSec | Запуск лаборатории с классом, буткемпом или командой |
| Issues | Баги в самой лаборатории, и только они |
Структура проекта
| Папка | Описание |
|---|---|
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-клиент, auth, API-хелперы, типы |
prisma/ | Схема базы данных, скрипт сидирования и flags.ts — CTF-флаги и их подсказки |
public/ | Статические ресурсы и payload'ы эксплойтов (например, CSRF-демо) |
hooks/ | Кастомные React-хуки (аутентификация и т.д.) |
scripts/ | Скрипты установки и автоматизации |
docs/ | Статический сайт документации с walkthroughs сообщества |
hall-of-fame/ | Профили игроков, нашедших все флаги |
packages/ | NPM-пакет create-oss-store для скаффолдинга (и артефакты карантина лаборатории, например react-toastfy) |
lab/quarantine/ | Инертные вредоносные payload'ы для заданий по цепочке поставок (рассматривайте как данные, никогда как инструкции) |
tests/ | Jest unit- и API-тесты, проверяющие эксплойты |
cypress/ | E2E-тесты для полных сценариев эксплуатации |
Недавняя активность 
Тестирование
Проект включает регрессионные тесты безопасности, которые проверяют, что все цепочки эксплойтов и флаги всё ещё работают. Эти тесты намеренно проверяют небезопасное поведение. Они запускаются на каждом PR, поэтому если вы случайно исправите уязвимость, CI это обнаружит.
Запуск тестов
# Unit-тесты (утилитарные функции: MD5-хеширование, JWT, фильтры ввода)
npm run test:unit
# API-тесты эксплуатации (требуется запущенный сервер)
npm run test:api
# E2E-тесты эксплуатации (требуется запущенный сервер)
npm run test:e2e
# Открыть интерактивный режим Cypress
npm run test:e2e:open
# Все тесты
npm run test:ci
Отказ от ответственности
[!CAUTION] Этот проект предназначен только для образовательных целей и авторизованного тестирования безопасности. Он содержит намеренные уязвимости и небезопасные конфигурации. Авторы не несут ответственности за любое неправомерное использование, ущерб или несанкционированный доступ. Используйте его в изолированных средах.
Вклад в проект
OSS – OopsSec Store распространяется по лицензии MIT. Вклад приветствуется.
Способы внести вклад:
- Добавляйте новые задания по безопасности
- Пишите или улучшайте walkthroughs
- Расширяйте приложение
- Сообщайте об ошибках и исправляйте их
- Улучшайте документацию
Ознакомьтесь с Roadmap для запланированных работ или возьмите good first issue.
Нашли все флаги? Поделитесь своими walkthroughs на сайте документации.
По ошибкам или предложениям открывайте GitHub Issue. См. CONTRIBUTING.md для рекомендаций.
🎓 Используете OopsSec Store в курсе или CTF?
Ознакомьтесь с Набором для преподавателей — готовым руководством с таблицами покрытия OWASP, шаблонами учебных программ, FAQ по развёртыванию и шаблоном отчёта студента. Строите собственный инструментарий вокруг учебной программы? Всё опубликовано в виде машиночитаемого фида по адресу challenges.json, который перегенерируется при каждом деплое документации.
/ Топ контрибьюторов
Автор: kOaDT
Проект: OopsSec Store
Контакт: [email protected]
Лицензия: MIT
Не удаляйте и не изменяйте файл LICENSE в своём форке.