Главная / Блог / Burp Suite для начинающих: перехватываем запросы и находим первый флаг в веб-задаче CTF

13 мин.00

Burp Suite для начинающих: перехватываем запросы и находим первый флаг в веб-задаче CTF

Burp Suite для начинающих: перехватываем запросы и находим первый флаг в веб-задаче CTF

Burp Suite для начинающих: перехватываем запросы и находим первый флаг в веб-задаче CTF

На первом CTF я убил два часа, копируя cookie из DevTools браузера и вставляя их обратно в адресную строку. Задачу с IDOR на 100 очков так и не решил — не хватало способа быстро менять параметры запроса и видеть, что сервер отвечает. Через неделю на тренировке коллега открыл Burp Suite: перехватил запрос, поменял user_id в Repeater, нажал Send — флаг лежал в теле ответа. Три клика вместо двух часов мучений. Эта статья — тот разбор, который я хотел бы прочитать перед своим первым CTF: от установки Burp Suite для начинающих до реального флага, без воды.

Зачем CTF-игроку Burp Suite и где он стоит в цепочке атаки

Burp Suite — HTTP-интерсептор: программа, которая встаёт между браузером и веб-сервером, позволяя видеть, останавливать и менять каждый запрос и ответ. Man-in-the-middle proxy для ваших собственных соединений. Разрабатывает его компания PortSwigger — коммерческий проект с регулярными обновлениями (релизы выходят каждые 2-4 недели, последний — в 2025 году).

В терминах MITRE ATT&CK Burp Suite закрывает начальный этап цепочки — Exploit Public-Facing Application (T1190, Initial Access). Вы находите уязвимость в веб-приложении, манипулируете запросами и получаете доступ к данным или функциям, недоступным обычному пользователю. На CTF это конкретный результат — строка flag{...} в ответе сервера.

Место Burp Suite в полной цепочке атаки:

  1. До Burp — разведка: изучаете веб-приложение, кликаете по страницам, ищете формы и API-эндпоинты
  2. Burp Suite — перехват HTTP запросов и модификация: останавливаете запрос, меняете параметры, анализируете ответ
  3. После Burp — эксплуатация найденной уязвимости: извлекаете флаг, закрепляетесь в системе, двигаетесь дальше по kill chain

Контекст применимости: Burp Suite — инструмент для веб-категории CTF и внешнего пентеста веб-периметра. Для внутреннего пентеста корпоративной сети (Active Directory, сетевые протоколы) нужны другие инструменты — Responder, BloodHound, Impacket. Для бинарной эксплуатации (pwn) — GDB и pwntools. Burp не универсален, но в своей нише — незаменим.

На CTF-соревнованиях категория Web — одна из самых популярных. Типичные задачи, где без Burp Suite перехвата запросов не обойтись:

  • IDOR (Insecure Direct Object Reference) — подмена идентификатора объекта в запросе. По OWASP Top 10 это A01:2021 Broken Access Control — самый распространённый класс веб-уязвимостей (по данным OWASP, 94% приложений содержат ту или иную форму нарушения контроля доступа)
  • Broken Authentication — манипуляция с cookie, токенами, заголовками авторизации
  • SQL Injection — внедрение SQL-кода через параметры запроса (A03:2021 Injection по OWASP)
  • Hidden parameters — поиск скрытых полей, влияющих на логику приложения

Установка и первый запуск Burp Suite

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

  • ОС: Windows 10+, macOS 10.14+, любой современный Linux (Kali Linux, Ubuntu 22.04+)
  • RAM: минимум 4 ГБ (рекомендуется 8 ГБ — Burp активно жрёт память при большом объёме трафика в HTTP History)
  • Диск: 500 МБ для установки
  • Java: встроена в инсталлятор, отдельно ставить не нужно
  • Сеть: доступ к интернету для работы с CTF-платформами (HackTheBox, PicoCTF)

Если работаете на Kali Linux — Burp Suite Community уже предустановлен. На остальных ОС качайте инсталлятор с portswigger.net/burp/communitydownload. Права администратора не нужны.

Burp Suite выпускается в трёх редакциях. Для CTF и обучения Community Edition хватает за глаза — Proxy, Repeater и Decoder работают без ограничений.

Возможность Community (бесплатно) Professional (~$449/год)
Proxy + Intercept Да Да
Repeater Да Да
Decoder Да Да
Intruder Замедлен (~1 req/s) Полная скорость
Scanner Нет Да
Встроенный браузер Да Да

Первый запуск: откройте Burp Suite → выберите Temporary project (для CTF сохранять проект на диск необязательно) → Use Burp defaultsStart Burp. Сразу переключите тему на тёмную: Settings → Display → Theme → Dark. Глаза скажут спасибо после нескольких часов соревнования.

Burp Suite proxy — настройка перехвата запросов за 5 минут

Настройка прокси — главный камень преткновения для новичков. Все русскоязычные руководства описывают ручную настройку Firefox и установку сертификатов. Но есть способ проще.

Встроенный браузер — нулевая настройка

В Burp Suite есть встроенный Chromium-браузер, уже настроенный на работу через прокси. Никаких сертификатов, плагинов и ручных конфигов:

  1. Откройте вкладку Proxy → Intercept
  2. Нажмите кнопку Open browser
  3. В открывшемся браузере перейдите на любой сайт — Burp сразу начнёт перехватывать трафик

Этот способ рекомендован в официальной документации PortSwigger. Для первого CTF — идеальный вариант: ноль настройки, HTTPS работает из коробки. По данным Bugcrowd, для новичков этот метод позволяет полностью пропустить шаги с FoxyProxy и CA-сертификатом.

Ручная настройка через Firefox и FoxyProxy

Если нужен привычный Firefox с закладками и расширениями:

  1. Установите расширение FoxyProxy для Firefox
  2. Добавьте новый профиль прокси: хост 127.0.0.1, порт 8080
  3. Активируйте профиль через иконку FoxyProxy в панели браузера

По умолчанию Burp Suite слушает на 127.0.0.1:8080 — проверяется во вкладке Proxy → Proxy settings.

Сертификат для работы с HTTPS

При ручной настройке Firefox HTTPS-сайты покажут ошибку — браузер не доверяет сертификату Burp. Как описано в документации PortSwigger, исправляется за минуту:

  1. При запущенном Burp откройте в настроенном браузере адрес http://burp (или http://burpsuite)
  2. Нажмите CA Certificate — скачается файл cacert.der
  3. В Firefox: Настройки → Приватность и защита → Сертификаты → Просмотр сертификатов → Центры сертификации → Импорт
  4. Выберите скачанный файл, отметьте «Доверять при идентификации веб-сайтов»

После этого расшифрованный HTTPS-трафик будет виден в Burp. Встроенный браузер всего этого не требует — он для того и сделан.

Перехват HTTP запросов: Intercept и HTTP History

Прокси настроен — дальше два режима работы, которые покрывают 100% потребностей на CTF.

Режим Intercept — перехват в реальном времени

Вкладка Proxy → Intercept. Если кнопка показывает Intercept is on, каждый запрос из браузера будет остановлен. Вы увидите его содержимое: метод (GET/POST), URL, заголовки, cookie, тело запроса.

Кнопки управления:

  • Forward — отправить запрос серверу и перехватить следующий
  • Drop — убить запрос (он не дойдёт до сервера)
  • Intercept is on/off — переключатель режима

В режиме Intercept is on страницы в браузере «зависают» — каждый запрос ждёт вашего решения. Полезно, когда нужно изменить конкретный запрос «на лету», но для обычного просмотра сайта — мучение. Как пишет PortSwigger в своём туториале: «Из-за количества запросов, которые обычно отправляет браузер, вам часто не захочется перехватывать каждый из них». Справедливо — браузер шлёт десятки запросов на каждую страницу (стили, скрипты, картинки), и жать Forward на каждый быстро надоедает.

Режим HTTP History — пассивное наблюдение

Переключите Intercept в положение off и перейдите во вкладку Proxy → HTTP history. Браузер работает нормально, но каждый запрос и ответ записывается в таблицу. Кликните на любую строку — увидите полное содержимое пары запрос/ответ.

Для веб-задач CTF типичный workflow:

  1. Выключите Intercept (Intercept is off)
  2. Побродите по веб-приложению — кликайте по ссылкам, заполните формы, попробуйте залогиниться
  3. Вернитесь в HTTP History и изучите все запросы
  4. Найдите интересный запрос (с параметром id=1, role=user, token=...)
  5. Правая кнопка → Send to Repeater

Этот подход рекомендован в документации PortSwigger как основной: исследуете приложение как обычный пользователь, потом разбираете накопленный трафик. На CTF это экономит массу времени — не нужно жать Forward на каждый скрипт, стиль и картинку.

Burp Suite Repeater — главный инструмент для веб-задач CTF

Repeater — тут вы проведёте 80% времени на любом CTF. Он позволяет отправлять HTTP-запросы вручную, менять что угодно и мгновенно видеть ответ сервера. По сути, ваш рабочий верстак.

Как попасть в Repeater: найдите нужный запрос в HTTP History → правый клик → Send to Repeater (горячая клавиша Ctrl+R).

Что можно менять:

  • URL и параметры (id=1id=2, page=homepage=admin)
  • Метод запроса (GETPOSTPUTDELETE)
  • Заголовки (Cookie, Authorization, User-Agent, X-Forwarded-For)
  • Тело запроса (для POST/PUT — JSON с данными формы, например)

На что смотреть в ответе:

  • Код ответа: 200 = сервер обработал, 403 = доступ запрещён, 302 = редирект, 500 = ошибка на сервере (часто признак уязвимости — сервер подавился вашим вводом)
  • Тело ответа: HTML или JSON — здесь может быть флаг
  • Длина ответа: если при изменении параметра длина резко скачет, сервер обработал ввод по-другому. Это сигнал
  • Заголовки ответа: Set-Cookie, Location — подсказки для следующего шага

Каждый раз при нажатии Send запрос отправляется заново. Меняйте значения и шлите десятки раз подряд — это штатный режим работы, не атака.

Находим первый флаг: пошаговый разбор веб-задачи CTF

Разберём типичную CTF-задачу категории Web на 100-200 очков. Сценарий: веб-приложение с авторизацией, после логина отображается профиль пользователя. Задача — добраться до данных администратора.

Такие задачи строятся на IDOR — приложение идентифицирует объекты по предсказуемому числовому ID и не проверяет, имеет ли текущий пользователь право доступа. По OWASP это A01:2021 Broken Access Control.

Шаг 1: разведка. Откройте встроенный браузер Burp (Proxy → Open browser). Перейдите на сайт задачи. Зарегистрируйтесь тестовым аккаунтом и залогиньтесь. Intercept выключен — просто бродите по приложению и кликайте по всем доступным ссылкам.

Шаг 2: изучаем HTTP History. Перейдите в Proxy → HTTP history. Найдите запрос, который загружает страницу профиля. Он может выглядеть так:

GET /api/user/profile?id=7 HTTP/1.1
Host: ctf-challenge.example.com
Cookie: session=abc123def456

Ключевое наблюдение: параметр id=7 — ваш идентификатор. Что если подставить id=1?

Шаг 3: отправляем в Repeater. Правый клик на запрос → Send to Repeater (Ctrl+R). Перейдите во вкладку Repeater.

Шаг 4: меняем идентификатор. Измените id=7 на id=1 прямо в тексте запроса и нажмите Send. Смотрите на ответ справа:

HTTP/1.1 200 OK
Content-Type: application/json

{"username":"admin","email":"admin@ctf.local",
 "flag":"flag{1d0r_f1rst_bl00d}"}

Флаг найден. Сервер вернул данные администратора, потому что не проверил, принадлежит ли id=1 текущей сессии. Классика.

Шаг 5: перебираем другие ID. В реальных CTF флаг может быть не у первого пользователя. Попробуйте id=0, id=1, id=2, id=3 — пока не найдёте ответ с флагом. Для 10-20 значений это быстрее делать вручную в Repeater, чем возиться с Intruder.

Весь процесс от открытия Burp до флага занимает 5-10 минут. Основное время уходит на изучение HTTP History и поиск запроса с управляемым параметром.

Типичные CTF-паттерны для Burp Suite перехвата запросов

IDOR — не единственный сценарий. Вот паттерны, которые регулярно встречаются в web-задачах CTF и где перехват HTTP запросов через Burp Suite необходим.

Манипуляция cookie. Приложение хранит роль пользователя в cookie: role=user. Перехватите запрос, поменяйте на role=admin. Если сервер не проверяет подпись cookie — получите администраторскую панель. Часто значение закодировано в Base64: используйте вкладку Decoder для декодирования. Пример: cookie dXNlcj1ndWVzdA== декодируется как user=guest. Меняете на user=admin, кодируете обратно, подставляете в запрос через Repeater. Три минуты работы.

Смена HTTP-метода. Запрос GET /admin возвращает 403 Forbidden. В Repeater поменяйте метод на POST, PUT или OPTIONS. Некоторые серверы по-разному обрабатывают методы, и защита может стоять только на GET. На реальных приложениях такая валидация обычно корректна (смена метода с GET на POST при добавлении is_admin=true вернёт 200 OK, но поведение не изменится). На CTF такая валидация намеренно отсутствует — в этом и суть задачи.

Скрытые параметры. В HTML-коде страницы — скрытое поле: <input type="hidden" name="debug" value="0">. Браузер отправляет его как есть, но через Burp вы меняете 0 на 1 — и получаете отладочный вывод с флагом. Искать скрытые поля удобно прямо в ответе сервера во вкладке HTTP History.

SQL Injection. Параметр id=1 вставляется в SQL-запрос без фильтрации. В Repeater попробуйте id=1' OR '1'='1 — если в ответе появилась SQL-ошибка или изменилось содержимое, уязвимость подтверждена. По OWASP A03:2021 Injection это третий по распространённости класс веб-уязвимостей. На CTF — частый вектор: меняете параметр → смотрите ответ → подбираете payload.

Подмена заголовков. Некоторые задачи проверяют заголовок X-Forwarded-For или Referer. Доступ к странице разрешён только с определённого IP или реферера. В Repeater добавьте строку X-Forwarded-For: 127.0.0.1 в заголовки запроса и отправьте. Если приложение доверяет этому заголовку без проверки — доступ открыт.

Ограничения Burp Suite Community и когда инструмент недостаточен

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

Intruder замедлен. Бесплатная версия ограничивает скорость Intruder до примерно 1 запроса в секунду. Для перебора 10 значений — терпимо, для словаря из 10 000 паролей — не вариант. Обходные пути: расширение Turbo Intruder (бесплатное, ставится через Extender → BApp Store) или скрипт на Python с библиотекой requests. Я обычно выбираю второй вариант — больше контроля.

Scanner отсутствует. Автоматический поиск уязвимостей — только в Pro. На CTF это не критично: задачи решаемы вручную, автоматический сканер часто бесполезен для нестандартных кейсов.

Не для всех категорий CTF. Burp Suite — веб-инструмент. Для Crypto, Pwn, Reverse Engineering, Forensics нужны другие средства. Burp не заменяет GDB, Ghidra, Wireshark или CyberChef.

Не заменяет понимание HTTP. Если вы не различаете GET и POST, не понимаете, что такое cookie и как работают заголовки — Burp Suite будет выглядеть как поток непонятного текста. Час на изучение структуры HTTP-запроса и ответа перед первым CTF — обязательная инвестиция. Без этого никакой инструмент не поможет.

Temporary project не сохраняется. Закроете Burp с Temporary project — вся HTTP History пропадёт. Для важных соревнований выбирайте New project on disk при запуске.

Преимущества Ограничения
Бесплатная версия покрывает Proxy, Repeater, Decoder Intruder замедлен до ~1 req/s
Встроенный браузер — нулевая настройка Нет автоматического сканера
Визуальный интерфейс, не командная строка Не подходит для бинарных CTF-задач
HTTP History сохраняет весь трафик сессии Требует базового понимания HTTP
Расширения через BApp Store Temporary project пропадает при закрытии

Куда двигаться после первого флага

Три направления для тренировки Burp Suite обучения на практике:

  1. PortSwigger Web Security Academy (portswigger.net/web-security) — бесплатные лабораторные по всем категориям OWASP. Каждая лаба — отдельная уязвимость с подсказками и пошаговым решением. Создатели Burp Suite сами пишут эти задачи — качество соответствующее.

  2. CTF-платформы. PicoCTF — для абсолютных новичков с пояснениями к каждой задаче. HackTheBox — для уровня повыше, задачи ближе к реальным сценариям. Категория Web на обеих площадках — десятки задач с нарастающей сложностью.

  3. Локальные уязвимые приложения. DVWA и WebGoat разворачиваются на вашей машине. Безопасная среда для экспериментов: можно вводить любые payload без страха что-то сломать или нарушить правила платформы.

Три горячие клавиши, которые экономят время на соревновании: Ctrl+R — отправить запрос в Repeater, Ctrl+I — отправить в Intruder, Ctrl+Shift+R — повторить отправку. Основной workflow укладывается в формулу: нашли запрос в History → Ctrl+R → изменили параметр → Send → анализ ответа.

Навык перехвата и модификации HTTP запросов, который вы освоили в этой статье, работает в каждой веб-задаче: меняется конкретная уязвимость, а workflow остаётся тем же — Proxy → History → Repeater → флаг.

Главная ошибка новичков — попытка освоить весь Burp Suite целиком, прежде чем решить первую задачу. Изучают Scanner, недоступный в бесплатной версии. Настраивают десяток расширений, ненужных для базовых кейсов. Читают документацию по каждому режиму Intruder, когда хватило бы трёх нажатий в Repeater. Не надо так.

Реальный набор для первых 20-30 веб-задач — ровно три вкладки: Proxy с HTTP History, Repeater и Decoder. Intruder понадобится, когда придёт задача с перебором на тысячу значений. Scanner — когда купите Pro и пойдёте в bug bounty. Но к тому моменту вы уже будете интуитивно чувствовать, какой параметр менять и чего ждать в ответе.

И вот что редко проговаривают: Burp Suite формирует мышление, а не просто навык работы с конкретной программой. Привычка видеть каждый HTTP-запрос — какие параметры передаются, какие cookie летят, что сервер возвращает на нестандартный ввод — меняет способ восприятия любого веб-приложения. Вы перестаёте быть пользователем и начинаете видеть поверхность атаки. Этот навык масштабируется на любой инструмент, любую платформу. Если хочется пройти путь от «что такое HTTP» до первых рабочих задач в ИБ системно — на IB Basics берут с любого старта и показывают, что делать в первые месяцы, без требований «вы должны знать Linux на уровне X».

🚀 Хочешь закрепить на практике? Реши задачи по теме на HackerLab — категория «web».

Поделиться

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

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

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