MISSION BRIEF
КАК ПОЛЬЗОВАТЬСЯ ПЛАТФОРМОЙ И РЕШАТЬ ЗАДАЧИ
Эта платформа нужна для CTF-соревнования. Вы открываете задачу, изучаете сайт, файл или сервис, находите флаг формата ozonctf{...} и отправляете его в форму проверки. Если ответ верный, платформа начисляет очки.
ФОРМАТ ФЛАГА
ozonctf{ваш_ответ}
Если вы только начинаете, открывайте задачи с небольшим количеством очков.
Обычно они короче, проще и лучше подходят для первого знакомства с CTF.
NEXUS
//
ЧТО ТАКОЕ CTF
ОСНОВЫ
- ФЛАГСекретная строка, которую нужно найти и отправить на платформу.
- ОЧКИНачисляются за каждую решённую задачу. Чем сложнее задача, тем больше очков.
- JEOPARDYКлассический формат CTF: у каждой задачи есть описание, а цель одна — найти флаг.
NEXUS
//
КАК НАЧАТЬ
ПЕРВЫЕ ШАГИ
01
ВОЙТИ
Если аккаунта ещё нет, сначала откройте страницу «Зачисление». Если аккаунт уже есть, используйте «Авторизация».
02
ОТКРЫТЬ
Перейдите в раздел «Миссии». Если это ваш первый CTF — начинайте с категории STARTERPACK: там собраны простые задачи по всем направлениям.
03
ИССЛЕДОВАТЬ
Прочитайте условие, скачайте файлы, откройте сайт или подключитесь к сервису, если это требуется в задаче.
04
СДАТЬ
Найдите флаг и отправьте его в форму проверки внутри страницы задания.
NEXUS
//
КАТЕГОРИИ ЗАДАЧ
ТИПЫ МИССИЙ
- STARTERPACKСтартовый набор для тех, кто в CTF впервые: простые задачи по всем направлениям. Фиксированная стоимость — 100 баллов за каждую, сколько бы команд их ни решило. Начинайте отсюда — пройдёте их, будет понятнее, куда двигаться дальше.
- WEBСайты, API, авторизация, cookies, формы и логика веб-приложений.
- CRYPTOШифрование, кодировки, RSA, XOR, хеши и ошибки в криптографии.
- PWNЭксплуатация бинарников и поиск уязвимостей в программах.
- REVРазбор программ, анализ алгоритмов и обратная разработка.
- FORENSICSИсследование файлов, дампов, логов, трафика и артефактов.
- OSINTПоиск по открытым источникам: соцсети, карты, архивы, метаданные.
- STEGOСтеганография: данные, спрятанные в картинках, аудио, видео или тексте.
- PPCProgramming & Coding: алгоритмические задачи, где флаг получают через собственный скрипт или решение на время.
- JOYЛёгкие, развлекательные задачи на внимательность. Хорошая точка входа для новичков.
- MISCРазные нестандартные задачи, которые не попали в другие категории.
NEXUS
//
КАК СДАВАТЬ ФЛАГ
ПРОВЕРКА ОТВЕТА
- ЦЕЛИКОМОтправляйте флаг полностью, вместе с префиксом
ozonctf{}. - ТОЧНОПроверяйте регистр букв, цифры, подчёркивания и скобки.
- ПРОВЕРКАЕсли флаг не принимается, перечитайте условие и убедитесь, что это именно флаг, а не промежуточный результат.
NEXUS
//
СКОРИНГ
ЦЕНА ФЛАГА
У большинства задач стоимость динамическая: чем больше команд решило задачу, тем дешевле она стоит. Единственное исключение — категория STARTERPACK: там стоимость фиксированная, 100 баллов за каждую задачу.
Важно: когда стоимость задачи падает, пересчёт идёт у всех команд, которые её уже решили. У задачи одна общая «текущая цена» — в рейтинге у всех решивших начисляется именно она. Первый решивший не фиксирует себе старую (большую) стоимость — его запись автоматически переоценится, когда задачу возьмут следующие.
ЛИНЕЙНАЯ ФОРМУЛА (ИСПОЛЬЗУЕТСЯ НА ПЛАТФОРМЕ)
value = Initial − Decay × SolveCount Initial = 1000 максимум Decay = 18 шаг падения SolveCount = сколько команд решило Minimum = 100 нижний порог
STARTERPACK
- СТАТИКАСтоимость не зависит от количества решивших.
- 100Каждая задача = 100 баллов, хоть первая команда, хоть сотая.
- ЗАЧЕМЧтобы можно было войти в CTF без страха, что «уже всё разобрали».
SolveCount — количество команд, уже решивших задачу. Стоимость линейно падает на 18 с каждой новой командой и упирается в 100: при 50 решивших задача уже стоит минимум, дальше все дорешивающие получают 100.
ПРИМЕР: КАК ПАДАЕТ СТОИМОСТЬ
1 команда → 1000 − 18×1 = 982 5 команд → 1000 − 18×5 = 910 10 команд → 1000 − 18×10 = 820 25 команд → 1000 − 18×25 = 550 40 команд → 1000 − 18×40 = 280 50 команд → 1000 − 18×50 = 100 ← минимум 51+ команд → 100 (упор в minimum)
ПАРАМЕТРЫ И ЧТО ОНИ ЗНАЧАТ
- INITIALСтартовая стоимость до первых решений.
- MINIMUMНижний порог — ниже не опустится.
- DECAYНасколько снижается стоимость за каждую новую команду.
- SOLVECOUNTСколько команд уже решили задачу.
Практический вывод для новичка: не гонитесь за «жирными» задачами. Высокая текущая стоимость обычно означает, что задача сложная — её мало кто решил, поэтому цена и не успела упасть. К концу соревнования она всё равно переоценится: ваш «ранний» флаг не зафиксирует большую стоимость. Сначала возьмите STARTERPACK и дешёвые задачи в знакомых категориях — это даст и очки, и понимание, куда расти дальше.
NEXUS
//
ПОДКЛЮЧЕНИЕ ПО NC
NETCAT
Иногда задача даётся не как сайт и не как файл, а как удалённый сервис. В условии указывают адрес и порт. Для подключения обычно используют
nc, он же netcat.
Пример команды подключения
nc challenge.example.com 31337
Что означают части команды
challenge.example.com -> адрес сервиса 31337 -> порт сервиса
Что вы видите после подключения
nc challenge.example.com 31337 Welcome to the service Enter your input:
Что делать дальше
Читайте, что просит сервис. Если он просит: - число -> введите число - строку -> введите строку - команду -> введите команду Не существует одного универсального ответа для всех задач.
NEXUS
//
КОМАНДЫ
ОТРЯД
CTF проходит в командном режиме. Решённые задачи и очки идут в общий зачёт команды — в рейтинге соревнуются отряды, а не отдельные участники. Управление командой живёт на странице «Мой отряд».
КАПИТАН
- СОЗДАЁТКоманду — при регистрации или со страницы «Мой отряд».
- ПРИГЛАШАЕТУчастников ссылкой-приглашением.
- НАСТРАИВАЕТНазвание, почту, пароль команды, передаёт роль другому участнику.
- РОСПУСКМожет распустить команду — только до того, как кто-либо из отряда сдал первый флаг.
УЧАСТНИК
- ВХОДИТПо ссылке-приглашению от капитана.
- РЕШАЕТЗадачи — очки идут в копилку команды.
- ПОКИДАЕТКоманду сам — только пока не сдал ни одного флага.
01
ПРИГЛАСИТЬ
Капитан на странице «Мой отряд» нажимает «Пригласить» и отправляет полученную ссылку напарнику.
02
ПРИНЯТЬ
Новый участник регистрируется и открывает ссылку-приглашение — попадает в команду автоматически.
03
СМЕНИТЬ КАПИТАНА
Только действующий капитан передаёт роль другому участнику команды со страницы «Мой отряд».
04
ПОКИНУТЬ
Пока вы не сдали ни одного флага, на странице «Мой отряд» есть кнопка «Покинуть». Капитан выйти не может — сначала нужно передать роль.
NEXUS
//
API-ТОКЕН
АВТОРИЗАЦИЯ
- ГДЕРаздел «Параметры» (
/settings) → блок «Токены доступа». Нажмите «Генерировать токен», выберите срок действия, скопируйте значение — оно показывается один раз. - ЗАЧЕМДля вызовов API платформы и для входа в деплоер личных инстансов задач.
- КАКПередавайте токен в заголовке
Authorization.
Пример запроса
curl -H "Authorization: Token <ТОКЕН>" \
https://ozon-ctf.ru/api/v1/users/me
NEXUS
//
PER-INSTANCE
ЛИЧНЫЙ ИНСТАНС
- ЧТОДля части задач поднимается отдельный сервис под вашу команду. Адрес и порт уникальны — другой отряд их не увидит.
- ГДЕСсылка на деплоер указана в описании конкретной задачи, которой нужен личный инстанс.
- ВХОДАвторизуйтесь в деплоере через API-токен из раздела «Параметры» (см. соседнюю секцию).
- КОМАНДАИнстанс выдаётся на отряд — все участники команды видят одну и ту же ссылку.
- ПЕРЕЗАПУСКУ инстанса есть время жизни. Если сервис «сломали» экспериментами — перезапустите его со страницы деплоера.
NEXUS
//
ЕСЛИ НЕ ПОЛУЧАЕТСЯ
ЭТО НОРМАЛЬНО
- НАЧНИТЕС категории STARTERPACK или с самых дешёвых задач по очкам.
- ЧИТАЙТЕУсловие внимательно. В нём часто уже есть ключевая подсказка.
- ПРОБУЙТЕМаленькие шаги: открыть сайт, посмотреть заголовки, проверить файлы, запустить
stringsилиnc. - НЕ ПАНИКУЙТЕВ CTF нормально не решать задачу с первой попытки.