Статья Как начать bug bounty после CTF: практический roadmap перехода на реальный пентест

Флиппер Зиро на тёмном антистатическом коврике рядом с монетой CTF. Экран устройства светится зелёным текстом, позади — размытое окно Burp Suite в тёплом янтарном свете.


Ты решаешь CTF-таски за 20 минут, и у тебя полка виртуальных медалей на CTFtime, а XSS в DVWA - детская разминка перед завтраком. Но первый репорт на HackerOne прилетает обратно со статусом "Duplicate" - кто-то нашёл этот IDOR за три часа до тебя. Знакомо? Я прошёл тот же путь и четыре месяца бился головой, прежде чем получил первую выплату. Эта статья - сжатый конспект того, что пришлось собирать по крупицам: конкретный roadmap bug bounty для тех, кто уже умеет ломать, но пока не умеет на этом зарабатывать.

Переход с CTF на пентест - не смена уровня сложности, а смена дисциплины целиком. В CTF ты ищешь флаг, в bug bounty - доказываешь бизнес-импакт. В CTF нет scope, а в реальном тестировании одна ошибка в scope стоит бана на платформе. Ниже - пошаговый план, как конвертировать CTF-скиллы в первые баунти.

Отличие CTF от bug bounty: пять точек, где всё ломается​

Самая частая причина, по которой CTF-игроки буксуют в bug bounty с нуля - они тащат CTF-мышление в production-системы. Вот конкретные различия, которые нужно прошить в голову до первого репорта.

Scope вместо свободы. В CTF тебе дан IP или URL, и ты волен атаковать что хочешь. В bug bounty программа чётко фиксирует разрешённые домены, поддомены, API-эндпоинты. Если scope говорит *.example.com, а ты полез тестировать payments.partner-gateway.com, на который ведёт редирект - это out-of-scope. Мой первый репорт на Bugcrowd закрыли именно так: я нашёл reflected XSS на домене CDN-провайдера, который обслуживал ассеты таргета. Технически уязвимость была реальной, но юридически - не моё дело.

Импакт вместо флага. CTF-флаг бинарен: нашёл или нет. В bug bounty триаж-команда оценивает severity по CVSS. Stored XSS, который стреляет только в собственный аккаунт - это Self-XSS с severity "None". Тот же Stored XSS, который крадёт session cookie администратора через вектор в поле профиля - это P2/High с выплатой от $1000 на HackerOne. Один класс уязвимости, радикально разная ценность.

Отчёт вместо скриншота. В CTF достаточно вставить flag{s0m3_str1ng}. В bug bounty отчёт - документ на 300–500 слов с чёткой структурой: summary, steps to reproduce, impact, remediation. Плохой отчёт = закрытый тикет, даже если баг реальный. Хороший отчёт = быстрый триаж, бонусные баллы репутации и доступ к приватным программам.

Дубликаты вместо уникальности. В CTF каждый решает задачу параллельно - и это нормально. В bug bounty первый, кто зарепортил - получает выплату, остальные получают "Duplicate". По моему опыту, на публичных программах HackerOne дупликат-рейт для IDOR и XSS на популярных таргетах такой, что новичок может отправить 10 валидных репортов и не получить ни одной выплаты.

Легальность вместо песочницы. CTF-платформа - controlled environment. Реальная программа - production с живыми пользователями. Агрессивный fuzzing может положить сервис, массовый скан Nuclei без rate-limiting вызовет alert у SOC-команды и бан аккаунта. В российском контексте стоит помнить про ст. 272 УК РФ: формальное участие в bug bounty на Standoff 365 или BI.ZONE Bug Bounty защищает юридически, но только в рамках scope и правил программы.

Маппинг CTF-навыков на bug bounty: что уже работает​

Хорошая новость: 60–70% твоих CTF-навыков переносятся напрямую. Плохая: оставшиеся 30–40% - именно то, что отличает оплаченный репорт от закрытого тикета.

Web Exploitation - прямой трансфер​

Если ты решал веб-категорию в CTF, база по OWASP Top 10 у тебя есть: SQL-инъекции, XSS, SSRF, IDOR, authentication bypass. Это ядро навыков для bug bounty - по OWASP API Security Top 10, проблемы контроля доступа и инъекции до сих пор лидируют по критичности.

Но в CTF ты эксплуатировал намеренно уязвимый код. В реальном приложении SQLi прячется за WAF, XSS фильтруется CSP-политиками, а IDOR маскируется UUID вместо инкрементных ID. Навык тот же, но поверхность атаки сложнее на порядок.

Криптография и форензика - косвенный трансфер​

Криптографические CTF-таски (RSA с малым экспонентом, padding oracle) в типичных веб-программах bug bounty встречаются редко. Зато понимание криптографии помогает находить дыры в JWT-токенах, слабые реализации HMAC, предсказуемые session ID. Это не массовые находки, но именно они приносят высокие выплаты - конкуренция тут минимальная.

Reverse Engineering - нишевый, но ценный​

RE-навыки из CTF применимы в программах для мобильных приложений и десктопного ПО. Если ты работал с Ghidra или IDA Pro на CTF - тебе открыт целый класс программ, куда большинство веб-хантеров просто не заходят. Мобильные программы (Android/iOS) на HackerOne и Bugcrowd часто имеют меньшую конкуренцию именно потому, что требуют reverse engineering.

Что нужно доучить с нуля​

Три навыка, которым не учат в CTF, но без которых новичков в bug bounty быстро настигает разочарование:
  1. Разведка (recon). В CTF тебе дали URL. В bug bounty ты сам находишь поддомены, скрытые API-эндпоинты, забытые staging-серверы. Это reconnaissance - этап, соответствующий технике Vulnerability Scanning (T1595.002, Reconnaissance) в MITRE ATT&CK. Разведка занимает 70% времени опытного баунти-хантера.
  2. Бизнес-логика. CTF тестирует технические уязвимости. Bug bounty вознаграждает за логические: race condition при покупке, IDOR в доступе к чужим счетам, privilege escalation через смену роли. Чтобы находить такие баги, нужно понимать, как приложение работает глазами обычного пользователя.
  3. Коммуникация. Написание отчёта, общение с триаж-командой, обоснование severity - мягкие навыки, которые CTF не тренирует. А они напрямую влияют на выплату.

Roadmap bug bounty: от CTF-игрока до первой выплаты за 12 недель

Конкретный план, рассчитанный на человека, который уже решает medium-сложности CTF-таски на HackTheBox или TryHackMe. Если ты абсолютный новичок - начни с Web Security Academy от PortSwigger (бесплатно) и возвращайся через 4–6 недель.

Требования к окружению​

  • ОС: Kali Linux или Parrot OS (VM или bare metal)
  • Burp Suite Community (для старта) или Pro (если готов вложить $449/год)
  • Браузер с FoxyProxy для проксирования трафика через Burp
  • Терминальные утилиты: ffuf, subfinder, httpx, nuclei - ставятся через go install или apt
  • Python 3.10+ для кастомных скриптов
  • Стабильный интернет и VPN (для разделения рабочего и баунти-трафика)

Недели 1–2: разведка как отдельная дисциплина

В CTF разведки нет - тебе дан таргет. В bug bounty разведка определяет, найдёшь ты что-то или нет. За первые две недели освой связку инструментов, которая станет твоим ежедневным конвейером.

Пайплайн recon для начинающих:

Начни с перечисления поддоменов: subfinder -d target.com -silent | httpx -status-code -title - находит живые поддомены и показывает HTTP-заголовки. Дальше прогони результаты через ffuf -u https://FUZZ.target.com/FUZZ -w /usr/share/wordlists/dirb/common.txt для directory bruteforce. Наконец, натрави nuclei -u https://subdomain.target.com -t cves/ для автоматической проверки известных CVE.

Этот конвейер - техническая реализация тактик Network Service Discovery (T1046, Discovery) и Vulnerability Scanning (T1595.002, Reconnaissance) из MITRE ATT&CK. Понимание этих тактик помогает не просто запускать инструменты, а осознанно строить attack surface map.

Что практиковать. Возьми любой домен из Bugcrowd VDP (Vulnerability Disclosure Program - программы без денежных выплат, но с легальным разрешением тестировать). Проведи полный recon и задокументируй находки в Notion или Obsidian. Цель - не найти баг, а натренировать процесс. Отработав базовые сценарии, ты перестанешь тратить час на задачи, которые решаются за десять минут.

Недели 3–4: Burp Suite как второй мозг​

Если в CTF ты пользовался Burp от случая к случаю, в bug bounty он должен стать рефлексом. Каждый HTTP-запрос приложения проходит через Proxy. Каждый интересный эндпоинт помечается в Target scope. Каждый параметр тестируется через Repeater.

Конкретные упражнения:
  1. Открой любое веб-приложение из scope выбранной программы.
  2. Проведи 30 минут в режиме «пользователь»: регистрация, логин, создание контента, изменение профиля, взаимодействие с другими аккаунтами.
  3. Переключись в Burp и изучи HTTP History: найди все эндпоинты, которые принимают пользовательский ввод.
  4. Для каждого эндпоинта задай вопрос: «Что будет, если я поменяю ID объекта? Что если уберу authorization-заголовок? Что если отправлю запрос от второго аккаунта?»
Этот подход - ручной поиск Unsecured Credentials (T1552, Credential Access) и Exploitation for Privilege Escalation (T1068, Privilege Escalation). Большинство IDOR находятся именно так: не сканерами, а внимательным ручным разбором. У меня первые три оплаченных бага были найдены ровно этим методом - тупо менял ID в Repeater и смотрел, что прилетит в ответ.

Недели 5–8: первые программы и первые репорты​

Выбор первой программы - критический момент. Вот конкретные критерии:

Начни с VDP или приватных программ. VDP не платят деньги, но дают опыт написания репортов и общения с триажем без давления конкуренции. На HackerOne после 3–5 принятых VDP-репортов тебя начнут приглашать в приватные программы с выплатами и меньшей конкуренцией.

Избегай «звёздных» программ на старте. Google VRP, программы Microsoft и Apple привлекают тысячи опытных исследователей. Вероятность дупликата для новичка тут зашкаливает. Выбирай программы среднего бизнеса с scope в 5–15 доменов: SaaS-платформы, финтех-стартапы, e-commerce.

Российский рынок как стартовая площадка. Standoff 365, BI.ZONE Bug Bounty и bugbounty.ru предлагают программы с меньшей конкуренцией, чем глобальные HackerOne/Bugcrowd. На Standoff 365 зарегистрировано 27+ тысяч исследователей, но активных хантеров - в разы меньше. Для сравнения, на HackerOne - сотни тысяч аккаунтов. Арифметика простая: шансы на уникальную находку на российских программах выше.

1776949218283.webp

Недели 9–12: итерация и специализация​

К этому моменту у тебя должно быть 3–5 отправленных репортов (пусть даже часть - дубликаты или N/A). Разбери каждый закрытый репорт:
  • Дубликат? Твоя разведка слишком поверхностная или ты тестируешь очевидные векторы. Копай глубже: бизнес-логика, race conditions, цепочки уязвимостей.
  • N/A (Not Applicable)? Перечитай scope и правила. Возможно, ты репортишь то, что программа явно исключает (Self-XSS, CSRF на logout, missing security headers без доказанного импакта).
  • Informative? Баг реальный, но импакт недостаточен. Попробуй развить находку: IDOR на чтение чужого профиля - это Low, а IDOR на изменение чужого email - уже High. Ищи цепочки.
1776949257334.webp

Анатомия отчёта: шаблон, который принимают с первого раза​

Качество отчёта напрямую определяет, получишь ты выплату или нет. Вот структура, которую я использую после десятков репортов:
Код:
## Summary
IDOR в эндпоинте /api/v2/orders/{id} позволяет
аутентифицированному пользователю читать детали заказов
других пользователей, включая адреса доставки и
последние 4 цифры карты, через подмену параметра order_id.

## Steps to Reproduce
1. Авторизоваться как User A (attacker)
2. Создать заказ от User B (victim) - order_id=12345
3. Отправить GET /api/v2/orders/12345
   с Cookie: session=<User_A_session>
4. Ответ содержит полные данные заказа User B

## Impact
Утечка PII (адрес, телефон, частичные данные карты)
всех пользователей. При автоматизации - массовый
перебор заказов. CVSS 3.1: 6.5 (Medium).

## Remediation
Добавить server-side проверку: order.user_id ==
current_user.id перед возвратом данных.
Каждый шаг воспроизводим, импакт привязан к бизнес-данным (PII, а не абстрактное «доступ к данным»), CVSS оценён конкретно. Такой отчёт триажится за часы, а не за дни. Я видел, как ребята с валидным багом ждали рассмотрения неделями - потому что в отчёте было «нашёл уязвимость, вот скриншот». Не надо так.

Инструменты: что оставить из CTF, что добавить для bug bounty​

КатегорияCTF-инструментBug Bounty замена/дополнениеПочему
Веб-проксиBurp Suite CommunityBurp Suite ProIntruder без throttling, Collaborator для OOB-тестов
СканированиеNmapsubfinder + httpx + nucleiRecon-пайплайн для web scope
FuzzingРучные пейлоадыffuf с кастомными словарямиСкорость и автоматизация
ЭксплуатацияSQLmap, MetasploitРучной Repeater в BurpАвтоматизация SQLmap может нарушить правила программы
ЗаметкиТекстовые файлыObsidian/Notion с шаблонамиСтруктурированное хранение находок по программам

Принцип такой: в CTF ты используешь инструмент для решения задачи. В bug bounty ты строишь workflow - цепочку инструментов, которая системно покрывает attack surface. Это ближе к профессиональному пентесту, где методология важнее отдельных тулзов.

Реальный пентест после CTF и bug bounty: следующий уровень

Bug bounty - отличный трамплин, но это не пентест. В коммерческом пентесте ты работаешь по договору с фиксированным scope, сроками и deliverables. Заказчик ждёт не один репорт про IDOR, а полный аудит с рекомендациями по всей инфраструктуре.

Вот как bug bounty готовит к пентесту - и где не готовит:

Готовит. Навыки разведки, эксплуатации веб-уязвимостей, написания отчётов, работы с Burp Suite Pro. Всё это - ежедневная рутина пентестера веб-приложений. Если ты провёл год в bug bounty и набрал 20+ принятых репортов, у тебя есть портфолио, которое убедительнее любого сертификата.

Не готовит. Внутренний пентест (Active Directory, lateral movement), социальная инженерия, физический доступ, тестирование сетевой инфраструктуры. Для этих навыков нужны отдельные лаборатории: HackTheBox ProLabs (Offshore, RastaLabs), Attacking and Defending Active Directory на PentesterAcademy. Техники Exploit Public-Facing Application (T1190, Initial Access) и Brute Force (T1110, Credential Access) из MITRE ATT&CK - только стартовые шаги в реальном kill chain корпоративной атаки.

Как стать пентестером через bug bounty. Путь выглядит так: CTF (фундамент) → Bug Bounty (практика на production) → Junior Pentest (первая работа) → Senior Pentest (специализация). На этапе поиска работы bug bounty-портфолио с конкретными находками на HackerOne/Bugcrowd весит больше, чем сертификаты eJPT или CEH. Но OSCP или BSCP по-прежнему остаются индустриальным стандартом для прохождения HR-фильтров (да, HR до сих пор смотрит на бумажки - такова реальность).

Пять ошибок, которые я совершил - чтобы ты не повторял​

Ошибка 1: начал с Google VRP. Конкуренция запредельная. Первый месяц потратил на разведку google.com и нашёл ровно ноль уникальных багов. Урок: начинай с программ среднего размера.

Ошибка 2: репортил Low-severity без цепочек. Отправлял Missing X-Frame-Options, CSRF on logout, verbose error messages. Все закрыты как "Informative". Урок: если severity ниже Medium - попробуй развить в цепочку, прежде чем репортить.

Ошибка 3: не читал policy до конца. Один таргет явно запрещал автоматизированное сканирование. Я запустил nuclei на полный scope. Аккаунт не забанили, но получил предупреждение. Урок: policy - это не "Terms & Conditions", которые все скроллят. Это твоя юридическая защита.

Ошибка 4: не вёл заметки. Через месяц забыл, какие эндпоинты тестировал, какие пейлоады пробовал. Дублировал собственную работу. Урок: Obsidian с шаблоном на каждый таргет - обязательно с первого дня.

Ошибка 5: сравнивал себя с топ-хантерами. Люди из Hall of Fame на HackerOne - fulltime-хантеры с годами опыта. Их результаты - нерелевантный benchmark для новичка. Сравнивай себя с собой месяц назад. Серьёзно.

Обучение пентесту с нуля: ресурсы, которые реально работают​

Вместо бесконечного списка ссылок - минимальный набор, отсортированный по приоритету:
  1. PortSwigger Web Security Academy (бесплатно) - лаборатории покрывают каждую уязвимость из OWASP Top 10 с пошаговыми решениями. Это мост между CTF и реальными багами. Для начала хватит за глаза.
  2. HackerOne Hacktivity (бесплатно) - публичные раскрытые репорты. Читай по 2–3 репорта в день, разбирай структуру, импакт, PoC. Это реальные находки реальных хантеров - лучший учебник по написанию отчётов.
  3. "Web Application Hacker's Handbook" (Stuttard, Pinto) - устаревшая в деталях, но базовая методология тестирования веб-приложений до сих пор актуальна.
  4. "Bug Bounty Bootcamp" (Vickie Li) - заточена под bug bounty workflow: recon, exploitation, reporting. Самый практичный учебник для перехода CTF-to-pentest.
  5. HackTheBox / TryHackMe - продолжай решать, но сфокусируйся на веб-машинах и машинах с Active Directory. Они ближе всего к реальным пентест-задачам.
Пересказывать содержание каждого ресурса не вижу смысла - открой и попробуй. Лучшая стратегия: PortSwigger Academy утром, Hacktivity вечером, баунти-программа на выходных.

У кого первый принятый репорт на HackerOne или Standoff 365 был в категории IDOR - какой конкретно эндпоинт вы тестировали и через что нашли предсказуемый идентификатор: ручной перебор в Burp Repeater, Intruder с Sniper-атакой, или кастомный скрипт на Python с requests? Интересует техника обнаружения: по какому паттерну в HTTP-ответе вы поняли, что объект доступен без авторизации - разница в status code, в размере response body или в содержимом JSON?

Вопрос к читателям​

В статье описан recon-пайплайн subfinder -d target.com -silent | httpx -status-code -title с последующим nuclei -t cves/. Расскажите об своём опыте, кто уже гоняет это на российских программах (Standoff 365, BI.ZONE): какие шаблоны Nuclei дают наибольший signal-to-noise на SaaS-таргетах - только cves/ или добавляете exposures/ и misconfiguration/? И как настраиваете rate-limiting в nuclei, чтобы не словить бан: -rate-limit 10 -bulk-size 5 или что-то жёстче? Отдельно интересно, как вы разделяете трафик recon и ручного тестирования - отдельный Burp-проект на каждый таргет или один с фильтрацией по Target scope? Покажите ваш типовой nuclei-запуск с флагами.
 
Последнее редактирование модератором:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab