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

oss-oopssec-store v2.18.0

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

Поделиться

OSS - OopsSec Store

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

36 испытаний по веб-приложениям, API, аутентификации, бизнес-логике, криптографии, цепочке поставок, AI-агентам и MCP.

Взломайте намеренно уязвимое приложение для электронной коммерции, построенное на Next.js, React, TypeScript и Prisma.
Найдите баги. Проэксплуатируйте их. Поймите, почему они работают.

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

```bash

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

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

<div align="center">

<table>
<tr>
<td width="50%" align="center">
<a href="https://github.com/koadt/oss-oopssec-store/blob/main/public/oopssec-store-storefront-0.png"><img src="https://raw.githubusercontent.com/koadt/oss-oopssec-store/main/public/oopssec-store-storefront-0.png" alt="OopsSec Store storefront" width="100%"></a>
<br><sub><b>Витрина магазина</b> · приложение электронной коммерции, которое вы атакуете</sub>
</td>
<td width="50%" align="center">
<a href="https://github.com/koadt/oss-oopssec-store/blob/main/public/oopssec-store-storefront-1.png"><img src="https://raw.githubusercontent.com/koadt/oss-oopssec-store/main/public/oopssec-store-storefront-1.png" alt="Player dashboard tracking captured flags" width="100%"></a>
<br><sub><b>Панель игрока</b> · прогресс, сложность и разбивка по категориям</sub>
</td>
</tr>
<tr>
<td width="50%" align="center">
<a href="https://github.com/koadt/oss-oopssec-store/blob/main/public/oopssec-store-storefront-2.png"><img src="https://raw.githubusercontent.com/koadt/oss-oopssec-store/main/public/oopssec-store-storefront-2.png" alt="OSSBot AI customer support assistant" width="100%"></a>
<br><sub><b>OSSBot</b> · ИИ-ассистент поддержки, которому вы делаете prompt-инъекцию</sub>
</td>
<td width="50%" align="center">
<a href="https://github.com/koadt/oss-oopssec-store/blob/main/public/oopssec-store-storefront-3.png"><img src="https://raw.githubusercontent.com/koadt/oss-oopssec-store/main/public/oopssec-store-storefront-3.png" alt="Challenge roadmap across 11 chapters" width="100%"></a>
<br><sub><b>Дорожная карта</b> · баги, которые попадают в продакшн-код</sub>
</td>
</tr>
</table>

<sub>Нажмите на любой скриншот, чтобы посмотреть его в полном размере.</sub>

</div>

---

## Начало работы

<table>
<tr>
<td width="56" align="center" valign="top"><img src="https://img.shields.io/badge/1-15803d?style=for-the-badge" alt="Step 1"></td>
<td valign="top">
<b>Запустите лабораторию</b><br>
<code>npx create-oss-store my-ctf-lab &amp;&amp; cd my-ctf-lab &amp;&amp; npm start</code><br>
<sub>Или <a href="#docker">запустите через Docker</a>. Магазин поднимается на <a href="http://localhost:3000">localhost:3000</a>.</sub>
</td>
</tr>
<tr>
<td width="56" align="center" valign="top"><img src="https://img.shields.io/badge/2-15803d?style=for-the-badge" alt="Step 2"></td>
<td valign="top">
<b>Возьмитесь за задание №1</b><br>
<a href="http://localhost:3000/vulnerabilities/public-env-variable">Утечка публичной переменной окружения</a>: платёжный секрет, который Next.js встраивает в клиентский бандл.<br>
<sub>Легко · 15–20 мин · нужны только devtools вашего браузера.</sub>
</td>
</tr>
<tr>
<td width="56" align="center" valign="top"><img src="https://img.shields.io/badge/3-15803d?style=for-the-badge" alt="Step 3"></td>
<td valign="top">
<b>Застряли? Прочитайте разбор</b><br>
Он есть для каждого задания: от уязвимости до эксплойта и исправления.<br>
<sub>Первый: <a href="https://koadt.github.io/oss-oopssec-store/posts/next-public-env-variable-leak/">Reading Secrets From the Browser: The NEXT_PUBLIC_ Trap in Next.js</a>.</sub>
</td>
</tr>
<tr>
<td width="56" align="center" valign="top"><img src="https://img.shields.io/badge/4-15803d?style=for-the-badge" alt="Step 4"></td>
<td valign="top">
<b>Проверьте флаг</b><br>
Вставьте <code>OSS{...}</code> в чекер флагов — плавающий виджет на каждой странице.<br>
<sub>Ваша <a href="http://localhost:3000/player-dashboard">панель игрока</a> отслеживает, что осталось.</sub>
</td>
</tr>
<tr>
<td width="56" align="center" valign="top"><img src="https://img.shields.io/badge/5-15803d?style=for-the-badge" alt="Step 5"></td>
<td valign="top">
<b>Выберите следующее</b><br>
<a href="https://koadt.github.io/oss-oopssec-store/roadmap">Дорожная карта</a> упорядочивает все задания по главам: сложность, оценка времени, предварительные требования.<br>
<sub>Возьмите следующую карточку, затем вернитесь к шагу 2. ↻</sub>
</td>
</tr>
</table>

> [!TIP]
> Всё захватили? [Присоединяйтесь к Залу славы](#hall-of-fame), поставьте звезду репозиторию и опубликуйте свой маршрут в [Show your solve](https://github.com/kOaDT/oss-oopssec-store/discussions/categories/show-your-solve).

<sub>Новичок в наступательной безопасности? <a href="https://tryhackme.com/jr/oopssecstorethesummeraudit">Комната TryHackMe</a> оборачивает первые флаги в управляемое повествование.</sub>

---

## Содержание

- [Возможности](#features)
- [Почему OopsSec Store?](#why-oopssec-store)
- [Установка](#installation)
  - [Быстрый старт (npm)](#quick-start)
  - [Docker](#docker)
- [Зал славы](#hall-of-fame)
- [Сообщество](#community)
- [Структура проекта](#project-structure)
- [Тестирование](#testing)
- [Отказ от ответственности](#disclaimer)
- [Участие в разработке](#contributing)
- [Набор для преподавателя](#-using-oopssec-store-in-a-course-or-ctf)
- [Статистика проекта](#project-stats)

---

> [!WARNING]
> Это приложение содержит намеренные уязвимости безопасности и никогда не должно развёртываться в продакшн-среде.

## Возможности

Категории