Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
oss-oopssec-store — Обучение безопасности для реально выпускаемых приложений. Откройте браузер и начинайте взламывать. | Kitploit
Инструменты/GitHubGitHub/koadt/oss-oopssec-store
Анализ уязвимостейЭксплуатация веб-приложенийВеб-безопасностьCTFТестирование на ПроникновениеБезопасность Цепочки ПоставокОбучение и ОбразованиеУчебные Маршруты и КурсыБезопасность ИИЛаборатории и Практика
GitHub
3445726 дней назадПроверено Kitploit
koadt/oss-oopssec-store

oss-oopssec-store

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

РепозиторийСайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
<div align="center">

<h1>OSS - OopsSec Store</h1>

</div>

<div align="center">

<p>
<b>Обучение безопасности для приложений, которые вы действительно выпускаете.</b>
</p>
<p>
36 испытаний по <b>веб-приложениям, API, аутентификации, бизнес-логике, криптографии, цепочке поставок, AI-агентам и MCP</b>.
</p>
<p>
Взломайте намеренно уязвимое приложение для электронной коммерции, построенное на <b>Next.js, React, TypeScript и Prisma</b>.<br>
Найдите ошибки. Проэксплуатируйте их. Поймите, почему они работают.
</p>

<p>
<a href="https://hub.docker.com/r/leogra/oss-oopssec-store">Docker Hub</a> ·
<a href="https://www.npmjs.com/package/create-oss-store">npm</a> ·
<a href="https://koadt.github.io/oss-oopssec-store/roadmap">Дорожная карта</a> ·
<a href="https://koadt.github.io/oss-oopssec-store">Прохождения</a> ·
<a href="https://github.com/kOaDT/oss-oopssec-store/blob/main/CONTRIBUTING.md">Участие в разработке</a> ·
<a href="https://github.com/users/kOaDT/projects/3/views/6">Хорошие первые задачи</a>
</p>

[![OWASP VWAD](https://img.shields.io/badge/OWASP-VWAD-000000?style=flat-square&logo=owasp&logoColor=white)](https://vwad.owasp.org/app/oopssec-store/)
[![TryHackMe room](https://img.shields.io/badge/TryHackMe-The_Summer_Audit-212C42?style=flat-square&logo=tryhackme&logoColor=white)](https://tryhackme.com/jr/oopssecstorethesummeraudit)
![Intentionally Vulnerable](https://img.shields.io/badge/%E2%9A%A0%EF%B8%8F_Intentionally-Vulnerable-red?style=flat-square)
<br>
[![GitHub license](https://img.shields.io/github/license/kOaDT/oss-oopssec-store?style=flat-square)](https://github.com/kOaDT/oss-oopssec-store/blob/main/LICENSE)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen?style=flat-square)](https://github.com/kOaDT/oss-oopssec-store/pulls)
[![Good first issues](https://img.shields.io/badge/Good_first-issues-7057ff?style=flat-square)](https://github.com/users/kOaDT/projects/3/views/6)
<br>
[![GitHub stars](https://img.shields.io/github/stars/kOaDT/oss-oopssec-store?style=social)](https://github.com/kOaDT/oss-oopssec-store/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/kOaDT/oss-oopssec-store?style=social)](https://github.com/kOaDT/oss-oopssec-store/network)

</div>

```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://assets.kitploit.com/production/public/readmes/12463/2656002fea49e81bc7876fc998d1bf1ddf664257bb023c03705e322e6dada5fb/9a5c520942d272122aeba14fd7a799dfecf60a99e0990904bff05e59ba634d37-display-v1.webp" alt="Витрина OopsSec Store" 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://assets.kitploit.com/production/public/readmes/12463/a3edf2b1a9311abfe35c5cb956302c0e6568a5c8ba891f0d2c4056defa19b078/24355e727585878af96376d809ee68dce57dd5823691ccd00b8fb8ae424750f6-display-v1.webp" alt="Панель игрока с отслеживанием захваченных флагов" 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://assets.kitploit.com/production/public/readmes/12463/05a9601b40eb202f0ef72eae225d69bfceb5a6600361408be681131a51d29da7/41e77928d6eb00585c020ca88a60f8fcef577c5741c8fba826ed8ac1982c362e-display-v1.webp" alt="ИИ-ассистент поддержки клиентов OSSBot" width="100%"></a>
<br><sub><b>OSSBot</b> · ИИ-ассистент поддержки, в который вы внедряете промпты</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://assets.kitploit.com/production/public/readmes/12463/91565414292b83d7dca7b97206404d899358e7b94ae9acad9c2a30d1886b8751/beac914224c61942f48311d8d3405292def762be276cffd16400ec6b6e2ec473-display-v1.webp" alt="Карта испытаний по 11 главам" width="100%"></a>
<br><sub><b>Карта</b> · уязвимости, которые попадают в production-код</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="Шаг 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="Шаг 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="Шаг 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="Шаг 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="Шаг 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)
  - [Обновление существующей установки](#updating-an-existing-install)
- [Зал славы](#hall-of-fame)
- [Сообщество](#community)
- [Структура проекта](#project-structure)
- [Тестирование](#testing)
- [Отказ от ответственности](#disclaimer)
- [Участие в разработке](#contributing)
- [Educator Kit](#-using-oopssec-store-in-a-course-or-ctf)
- [Статистика проекта](#project-stats)

---

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

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

- Намеренно уязвимое приложение электронной коммерции (XSS, CSRF, IDOR, атаки на JWT, обход путей, SQL-инъекции и многое другое)
- Создано на Next.js (App Router), React, TypeScript, Prisma и SQLite
- REST API с документированными векторами атак
- 36 CTF-задач в 11 главах, организованных в виде структурированного [учебного плана](https://koadt.github.io/oss-oopssec-store/roadmap)
- Документация по уязвимостям и разборы от сообщества для каждой задачи
- Пошаговая [комната TryHackMe](https://tryhackme.com/jr/oopssecstorethesummeraudit): _The Summer Audit_, 8 заданий и 7 флагов, как сюжетное введение для новичков
- Автоматические тесты, проверяющие, что эксплойты по-прежнему работают (PR, случайно исправляющие уязвимость, не пройдут CI)

## Почему OopsSec Store?

Современные фреймворки меняют то, где появляются уязвимости безопасности и как их следует исправлять. OopsSec Store помещает классические классы уязвимостей в стек, который многие разработчики используют сегодня: Next.js App Router, React, TypeScript и Prisma.

Компоненты с серверным рендерингом, middleware и ORM вводят иные границы доверия и режимы отказа. Несколько задач также воспроизводят опубликованные CVE для этого стека.

Учебная программа также охватывает поверхность атак, появившуюся с разработкой при помощи ИИ: prompt injection против агента поддержки клиентов, отравление инструментов MCP, файл правил агента программирования с бэкдором и цепочку тайпсквоттинга npm, смоделированную от начала до конца.

|                                                | OopsSec Store                                           | Juice Shop                                                       | DVWA                      |
| ---------------------------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------- |
| Стек                                           | Next.js · React · TypeScript · Prisma                   | Node.js · Express · Angular                                      | PHP · MySQL               |
| Установка                                      | `npx create-oss-store` (< 1 мин) / Docker               | Docker / npm                                                     | Docker / ручной LAMP      |
| CTF-флаги                                      | ✅ Встроены (статические флаги)                         | ✅ Опционально, флаги для каждого экземпляра (`CTF_KEY`); CTFd/RootTheBox/FBCTF | ❌                        |
| Пошаговый учебный план                         | ✅ 1 план, 11 глав, 36 флагов                           | ❌ Только таблица результатов                                    | Частично (уровни безопасности) |
| Прохождение для каждого испытания              | ✅                                                      | ✅ Сопроводительное руководство                                  | Частично (подсказки)      |
| Prompt injection для LLM                       | ✅ Подключите бесплатный API-ключ                       | ✅ v20+, подключите и настройте свою LLM                         | ❌                        |
| Отравление инструментов MCP                    | ✅                                                      | ❌                                                               | ❌                        |
| Бэкдор в AI-агенте для кодинга (отравленный файл правил) | ✅                                              | ❌                                                               | ❌                        |
| Цепочка атаки на цепочку поставок              | ✅ Сквозная симуляция: тайпсквоттинг npm → бэкдор в правилах | Частично (только идентификация)                            | ❌                        |
| Испытания на основе реальных CVE               | ✅ CVE фреймворков Next.js / React                      | Частично (уязвимые зависимости npm)                              | ❌                        |
| Зал славы для игроков                          | ✅                                                      | ❌                                                               | ❌                        |

<sub>Последняя проверка — сентябрь 2026 г., на Juice Shop v20 и DVWA 2.x. Заметили неточность? [Откройте issue](https://github.com/kOaDT/oss-oopssec-store/issues) или [откройте PR](https://github.com/kOaDT/oss-oopssec-store/pulls).</sub>

## Установка

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

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

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

### Ручная установка

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

```bash
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](https://docs.docker.com/get-docker/).

> `127.0.0.1:3000:3000` делает лабораторию доступной только с вашей собственной машины. Используйте обычный `-p 3000:3000` только на изолированной виртуальной машине, которую вы контролируете.

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

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

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

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

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

```bash
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
```

Если npm установлен, те же четыре команды: `npm run docker:up`, `docker:logs`, `docker:down` и `docker:reset`.

База данных инициализируется при первом запуске. Данные сохраняются между перезапусками благодаря именованным томам Docker, включая прогресс по флагам, пользователей и загрузки.

### Обновление существующей установки

Новая версия обычно приносит новые испытания, а вместе с ними — таблицы и строки, которых ваша база данных ещё не видела. Проверьте [changelog](https://github.com/koadt/oss-oopssec-store/blob/main/CHANGELOG.md) на предмет несовместимых изменений, затем обновитесь без необходимости начинать заново:

```bash
npm run db:upgrade             # local clone
docker compose up -d --build   # Docker: the entrypoint upgrades on start
```

Это пересоздаёт клиент, применяет схему, а затем повторно применяет строки, необходимые при каждой установке — флаги, подсказки и SQL-инъекционные канарейки. Ваши заказы, захваченные флаги, пользователи и загрузки остаются нетронутыми; уже выпущенные токены сохраняют свою силу.

Что не переносится — это демонстрационный каталог: строки, добавленные в `prisma/seed.ts`, попадают только в свежую установку, а повторный запуск полного сида воссоздал бы ваши заказы.

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

## Зал славы

Нашли все флаги? Откройте pull request, чтобы попасть в [Зал славы](https://github.com/koadt/oss-oopssec-store/blob/main/hall-of-fame/data.json). Добавьте свою запись в `hall-of-fame/data.json`, и ваш профиль появится на странице `/hall-of-fame` в приложении.

Как только ваша запись будет объединена, для вас сгенерируется значок, который будет размещён на сайте документации:

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

```markdown
[![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)
```

Социальная карточка размером 1200x630 находится по тому же пути с расширением `.png`.

[![OopsSec Store Hall of Fame](https://assets.kitploit.com/production/public/readmes/12463/0e87adf89481064ecf790a25aacedb70507511c62f6981788e470c1c9feeb330/bc3987368c521a29b3bbbc429ccb6f10e68f2c0404e1d94c51760ed75417830b-display-v1.webp)](https://github.com/kOaDT/oss-oopssec-store#hall-of-fame)

```markdown
[![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)
```

Оба варианта готовы к копированию с вашей карточки на странице `/hall-of-fame` — в Markdown, HTML или в виде простого URL.

## Сообщество

Вопросы, решения и отзывы — в [Discussions](https://github.com/kOaDT/oss-oopssec-store/discussions).

| Куда обратиться                                                                                                       | По какому поводу                                       |
| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| [🧩 Застряли на задании](https://github.com/kOaDT/oss-oopssec-store/discussions/new?category=stuck-on-a-challenge)    | Эксплойт не срабатывает, флаг не проходит проверку     |
| [🛠️ Установка и настройка](https://github.com/kOaDT/oss-oopssec-store/discussions/new?category=setup-and-install)     | Проблемы с Docker, npm или Node при запуске лаборатории |
| [🏆 Покажите своё решение](https://github.com/kOaDT/oss-oopssec-store/discussions/new?category=show-your-solve)       | Способ получить флаг, не описанный в прохождении       |
| [💡 Идеи для заданий](https://github.com/kOaDT/oss-oopssec-store/discussions/new?category=challenge-ideas)            | Класс уязвимости, который стоит добавить в курс        |
| [🎓 Преподавание с OopsSec](https://github.com/kOaDT/oss-oopssec-store/discussions/new?category=teaching-with-oopssec) | Запуск лаборатории с классом, на буткемпе или в команде |
| [Issues](https://github.com/kOaDT/oss-oopssec-store/issues)                                                           | Ошибки в самой лаборатории, и только они               |

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

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

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

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

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

```bash
# 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. Мы приветствуем вклад в проект.

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

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

Ознакомьтесь с [дорожной картой](https://github.com/users/kOaDT/projects/3), чтобы узнать о запланированной работе, или выберите [задачу для новичков](https://github.com/users/kOaDT/projects/3/views/6).

Нашли все флаги? Поделитесь своими руководствами на [сайте документации](https://koadt.github.io/oss-oopssec-store).

По вопросам ошибок или предложений открывайте [GitHub Issue](https://github.com/kOaDT/oss-oopssec-store/issues). См. [CONTRIBUTING.md](https://github.com/koadt/oss-oopssec-store/blob/main/CONTRIBUTING.md) для получения рекомендаций.

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

Ознакомьтесь с [Educator Kit](https://github.com/koadt/oss-oopssec-store/blob/main/EDUCATORS.md) — готовым к использованию руководством с таблицами покрытия OWASP, шаблонами учебных программ, FAQ по развёртыванию и шаблоном отчёта студента. Создаёте собственные инструменты вокруг учебной программы? Всё это опубликовано в виде машиночитаемого фида по адресу [`challenges.json`](https://koadt.github.io/oss-oopssec-store/challenges.json), который перегенерируется при каждом развёртывании документации.

## Статистика проекта

<div align="center">

[![OopsSec Store project stats](https://koadt.github.io/oss-oopssec-store/stats.svg)](https://koadt.github.io/oss-oopssec-store/roadmap)

<sub>Формируется на основе самой учебной программы и GitHub API, обновляется ежедневно. Хотите увидеть свой аватар в этом ряду? Возьмите <a href="https://github.com/users/kOaDT/projects/3/views/6">задачу для новичков</a>.</sub>

</div>

---

<div align="center">

Автор: [kOaDT](https://github.com/kOaDT)  
Проект: [OopsSec Store](https://github.com/kOaDT/oss-oopssec-store)  
Контакт: [email protected]

Лицензия: [MIT](https://github.com/kOaDT/oss-oopssec-store/blob/main/LICENSE)

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

</div>
Скачать инструмент