Главная / Блог / Как начать участвовать в CTF-соревнованиях: руководство для новичков

5 мин.00

Как начать участвовать в CTF-соревнованиях: руководство для новичков

29 МАЙ, 2025
Как начать участвовать в CTF-соревнованиях: руководство для новичков
Как начать участвовать в CTF-соревнованиях: руководство для новичков

Введение

У многих новичков в информационной безопасности в определённый этап постижения этой сферы возникает желание участия в CTF-соревнованиях. Но большинство таких энтузиастов сталкивается с проблемой подготовки к ним. В этой статье я постараюсь убрать проблему неопределённости в подготовках к CTF, и составить план подготовки к первым соревнованиям основываясь на личном опыте.

Виды CTF

Перед подготовкой стоит определиться с видом соревнований к которым собираетесь готовиться, из собственной практики я выделил всего два вида: Task-based и Attack Defense.

Task-based

С тасками всё относительно просто, условно задаются тематики в рамках которых и будут строиться задачки(Реверс-инжиниринг, форензика, OSINT, криптография и т.д). Ранее я разбирал таски OSINT соревнований в которых участвовал и как в качестве наглядного примера советую с ними ознакомиться: часть 1, часть 2, часть 3.

Такой формат соревнований очень хорош для новичков т.к такие темы как: криптография, реверс-инжиниринг, форензика, OSINT и веб-уязвимости встречаются в большинстве такого вида соревнований. И главное чем хороши таски это тем, что ваши флаги покорно будут вас ждать и никуда не денуться пока вы не решите задачку.

Таблица заданий

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

Attack Defense

Этот вид соревнований для “настоящих ценителей”, новичкам в таком виде соревнований будет достаточно сложно, но безусловно они получат хороший практический опыт в сфере ИБ. Суть соревнований заключается в том, что у каждой команды имеется свой сервер и они находятся все в одной сети, будь то виртуальные машины или VPN, в каждом сервисе оставлены уязвимости и чаще всего требуется завладеть админкой сервиса, захватить флаг и защитить свои сервисы закрытием уязвимостей которые были найдены у других команд.

Сервисы в основном будут запускаться через docker-compose и обязательно нужно иметь навыки запуска сервисов через docker. Чаще всего он уже предустановлен на сервере. Для запуска потребуется войти в директорию сервиса, ознакомиться с файлом README.md в котором будет описан процесс запуска сервиса, но чаще всего просто потребуется прописать docker-compose up.

Docker

Соревнования Attack Defense подразумевают знания эксплуатации веб-уязвимостей, к которым относятся: SQLInjection, XSS-уязвимости, CSRF, SSRF, IDOR и LFI. Кратко объясню суть этих уязвимостей:

  • SQL Injection: злоумышленник внедряет вредоносный SQL-код через входные данные(например формы), чтобы манипулировать базой данных.
  • Межсайтовый скриптинг (XSS): внедрение JavaScript-кода на страницу, который выполняется в браузере жертвы.
  • Подделка межсайтовых запросов (CSRF): злоумышленник заставляет авторизированного пользователя выполнить действия без его согласия(например перевод средств).
  • Серверная подделка запросов (SSRF): принуждение сервера к выполнению запросов к внутренним или сторонним ресурсам.
  • Небезопасные прямые ссылки (IDOR): Доступ к данным через подмену идентификаторов в URL (например /user?id=123→id=124).
  • Локальное включение файлов (LFI): Чтение локальных файлов через параметры (например ?file=/etc/passwd).

Уязвимости из вышеперечисленных самые распространённые в Attack Defense и подготовку команды нужно ориентировать именно на них, но специфика подготовки будет заключаться в навыках защиты и нападения.

Для защиты потребуется изучить уязвимости в плане кодовой составляющей, знать из-за чего возникают эти уязвимости, ориентация в логике работы кода и хорошие знания в программировании. Также засчёт изучения кода можно атаковать, занимаясь реверс-инжинирингом, или подсказывать пути атаки для атакующих коллег.

Для атаки потребуется практический опыт в эксплуатации веб-уязвимостей и умение их находить. В качестве тренировки можно пользоваться различными интернет-ресурсами предназначенными для оттачивания этих навыков, например HackerLab, образами виртуальных машин и подобным. Навыки в программировании будут крайне полезными атакующим для написания простых эксплоитов на том же Python, что сможет автоматизировать процесс добычи флагов и сдачи их в жюрейку (систему для начисления баллов за флаги).

Одним из самых важных и очевидных моментов является знание формата флага, что организаторы как правило должны проговаривать перед началом соревнований. Чаще всего это формат некоего хеша.

Заключение

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

Всё, что нужно для старта — уже на HackerLab!

👉 Заходи, решай, прокачивайся!

Поделиться

0 комментариев

Пожалуйста, войдите, чтобы оставить комментарий.

Загрузка комментариев...