Главная / Блог / Как начать участвовать в CTF-соревнованиях: руководство для новичков
У многих новичков в информационной безопасности в определённый этап постижения этой сферы возникает желание участия в CTF-соревнованиях. Но большинство таких энтузиастов сталкивается с проблемой подготовки к ним. В этой статье я постараюсь убрать проблему неопределённости в подготовках к CTF, и составить план подготовки к первым соревнованиям основываясь на личном опыте.
Перед подготовкой стоит определиться с видом соревнований к которым собираетесь готовиться, из собственной практики я выделил всего два вида: Task-based и Attack Defense.
С тасками всё относительно просто, условно задаются тематики в рамках которых и будут строиться задачки(Реверс-инжиниринг, форензика, OSINT, криптография и т.д). Ранее я разбирал таски OSINT соревнований в которых участвовал и как в качестве наглядного примера советую с ними ознакомиться: часть 1, часть 2, часть 3.
Такой формат соревнований очень хорош для новичков т.к такие темы как: криптография, реверс-инжиниринг, форензика, OSINT и веб-уязвимости встречаются в большинстве такого вида соревнований. И главное чем хороши таски это тем, что ваши флаги покорно будут вас ждать и никуда не денуться пока вы не решите задачку.
Для того чтобы спланировать участие в этих соревнований, достаточно просто набрать команду, выявить темы в которых каждый член команды больше всего разбирается и распределить кто к какой теме будет готовиться. Для подготовки требуется лишь практический опыт и софт составляющая.
Этот вид соревнований для “настоящих ценителей”, новичкам в таком виде соревнований будет достаточно сложно, но безусловно они получат хороший практический опыт в сфере ИБ. Суть соревнований заключается в том, что у каждой команды имеется свой сервер и они находятся все в одной сети, будь то виртуальные машины или VPN, в каждом сервисе оставлены уязвимости и чаще всего требуется завладеть админкой сервиса, захватить флаг и защитить свои сервисы закрытием уязвимостей которые были найдены у других команд.
Сервисы в основном будут запускаться через docker-compose и обязательно нужно иметь навыки запуска сервисов через docker. Чаще всего он уже предустановлен на сервере. Для запуска потребуется войти в директорию сервиса, ознакомиться с файлом README.md в котором будет описан процесс запуска сервиса, но чаще всего просто потребуется прописать docker-compose up.
Соревнования Attack Defense подразумевают знания эксплуатации веб-уязвимостей, к которым относятся: SQLInjection, XSS-уязвимости, CSRF, SSRF, IDOR и LFI. Кратко объясню суть этих уязвимостей:
Уязвимости из вышеперечисленных самые распространённые в Attack Defense и подготовку команды нужно ориентировать именно на них, но специфика подготовки будет заключаться в навыках защиты и нападения.
Для защиты потребуется изучить уязвимости в плане кодовой составляющей, знать из-за чего возникают эти уязвимости, ориентация в логике работы кода и хорошие знания в программировании. Также засчёт изучения кода можно атаковать, занимаясь реверс-инжинирингом, или подсказывать пути атаки для атакующих коллег.
Для атаки потребуется практический опыт в эксплуатации веб-уязвимостей и умение их находить. В качестве тренировки можно пользоваться различными интернет-ресурсами предназначенными для оттачивания этих навыков, например HackerLab, образами виртуальных машин и подобным. Навыки в программировании будут крайне полезными атакующим для написания простых эксплоитов на том же Python, что сможет автоматизировать процесс добычи флагов и сдачи их в жюрейку (систему для начисления баллов за флаги).
Одним из самых важных и очевидных моментов является знание формата флага, что организаторы как правило должны проговаривать перед началом соревнований. Чаще всего это формат некоего хеша.
Эти простые советы помогут вам составить чёткий план подготовки к соревнованиям, а исходя из этого плана можно будет составить конкретный план действий.
Всё, что нужно для старта — уже на HackerLab!
Все права защищены. © 2016 - 2025