Главная / Блог / Burp Suite с нуля: настройка и первые CTF-таски

14 мин.00

Burp Suite с нуля: настройка и первые CTF-таски

Burp Suite с нуля: настройка и первые CTF-таски

Первый веб-таск на CTF. Форма логина, два поля, кнопка Submit. Ввожу admin/admin — «Access Denied». Открываю DevTools, нахожу POST-запрос к /api/login с JSON в теле. Пытаюсь подменить username на ' OR 1=1 -- прямо в консоли — браузер экранирует кавычки, ничего не работает. Пять минут мучений. Запускаю Burp Suite, перехватываю тот же запрос, вставляю payload в чистом виде через Repeater — флаг. Разница между «не могу решить» и «решил за минуту» свелась к одному инструменту, который я до этого боялся настраивать. Знакомо? Тогда читаем дальше — от установки Burp Suite до первого решённого таска.

Зачем Burp Suite нужен в CTF и веб-пентесте

Burp Suite — платформа для тестирования безопасности веб-приложений от PortSwigger. По данным Bugcrowd, почти каждый профессиональный веб-пентест и workflow на bug bounty проходит через этот инструмент. Но для CTF-игрока Burp Suite ценен не автоматическим сканированием (его в Community вообще нет), а тремя конкретными вещами: Подробнее — в нашем руководстве по пентест веб-приложений.

  • Перехват запросов — видишь каждый HTTP-запрос и ответ между браузером и сервером, можешь менять их до отправки. Без этого таски на Injection (A03:2021 по OWASP Top 10) и Broken Access Control (A01:2021) решать мучительно.
  • Повторная отправка — Repeater гоняет один запрос десятки раз с разными параметрами. Не надо каждый раз заполнять форму в браузере и кликать Submit.
  • Автоматический перебор — Intruder подставляет сотни значений в нужный параметр. Для задач на брутфорс и фаззинг — must have. В терминах MITRE ATT&CK это прямой аналог техники Password Guessing (T1110.001, Credential Access).

В CTF ты работаешь на стороне атакующего: ищешь SQL-инъекции, обходишь авторизацию, подменяешь куки. Burp Suite превращает HTTP-трафик в управляемую поверхность — вместо того чтобы гадать, что отправляет браузер, видишь каждый байт.

Установка Burp Suite Community Edition

Community Edition бесплатна и покрывает всё, что нужно для CTF: Proxy, Repeater, Intruder (с ограничением скорости), Decoder и Comparer. Scanner с автоматическим поиском уязвимостей — только в Professional Edition, но для ручного разбора тасков он и не нужен.

Скачивайте инсталлятор с официального сайта portswigger.net/burp/releases — начиная с версии 2026.4 PortSwigger использует единый инсталлятор для Community и Professional. При запуске выбирается нужная редакция. Java 17+ встроена, ставить отдельно не надо.

Минимальные требования: Windows 10+ / macOS 10.14+ / любой современный Linux, 4 GB RAM (8 GB рекомендуется), 2+ ядра CPU. На практике на 4 GB Burp заметно тормозит, особенно при активном скроллинге HTTP History — если есть возможность, выделяйте 8 GB.

При первом запуске Burp предложит выбрать тип проекта: Temporary project — для быстрых сессий (данные пропадут после закрытия), New project on disk — для длительной работы. Для CTF-тасков хватает Temporary project. Жмите Use Burp defaults → Start Burp.

Совет: сразу увеличьте шрифт. Settings → Display, Font Size 16-18 для интерфейса и 18-20 для HTTP-сообщений. Там же переключите тему на Dark — глаза скажут спасибо на третьем часу CTF-марафона. После этого перезапустите Burp.

Два способа направить трафик через Burp Suite

Burp Suite работает как прокси-сервер: встаёт между браузером и целевым сервером, пропускает через себя каждый HTTP/HTTPS-запрос. По умолчанию слушает на 127.0.0.1:8080. Но браузер об этом не знает, пока вы ему не скажете. Два способа это сделать.

Встроенный браузер Burp Suite — быстрый старт

Способ, который русскоязычные гайды почти не упоминают: в Burp Suite есть встроенный Chromium, уже настроенный на работу через прокси. Вкладка Proxy → Intercept, кнопка Open Browser. Готово — браузер сразу отправляет весь трафик через Burp, сертификат установлен, никаких плясок с настройками.

Для быстрого решения CTF-тасков — оптимальный вариант: открыли Burp, нажали Open Browser, перешли на URL задания, трафик уже перехватывается. Минус — встроенный браузер не поддерживает расширения Firefox (Wappalyzer, Cookie Editor), и переключаться между «режимом CTF» и обычным браузингом неудобно. Для повседневной работы нужен второй способ.

Настройка прокси в Firefox с FoxyProxy

Firefox — основной браузер для веб-пентеста: отдельное хранилище сертификатов (не зависит от системного) и гибкие сетевые настройки. Ручная настройка прокси проста, но в быту — боль: после каждого CTF приходится вручную отключать прокси, иначе интернет «пропадает» (Burp не запущен — трафик некуда направить).

Решение — расширение FoxyProxy. Переключение прокси одним кликом. Настройка по шагам:

  1. Установите FoxyProxy из каталога дополнений Firefox (addons.mozilla.org, поиск по «FoxyProxy Standard»).
  2. Нажмите на иконку FoxyProxy в панели → Options.
  3. Нажмите Add для создания нового прокси-профиля.
  4. Заполните поля: Title — Burp Suite, Proxy Type — HTTP, Hostname — 127.0.0.1, Port — 8080.
  5. Сохраните профиль.

Переключение: клик по иконке FoxyProxy → выбрать «Burp Suite» для включения → «Disable» для отключения. Две секунды вместо пяти минут в настройках.

Если FoxyProxy не подходит — ручная настройка: Settings → General → Network Settings → Settings → Manual proxy configuration. HTTP Proxy: 127.0.0.1, Port: 8080, галочка «Also use this proxy for HTTPS». В поле исключений — localhost, 127.0.0.1. Но после каждого сеанса не забывайте возвращать «Use system proxy settings», иначе Firefox перестанет загружать страницы.

Установка сертификата Burp Suite для HTTPS

При перехвате HTTPS-трафика Burp Suite встаёт посредником между браузером и сервером — по сути реализует Adversary-in-the-Middle (T1557, Collection / Credential Access), только для легитимного тестирования. Burp генерирует собственный CA-сертификат для каждой установки и подписывает им все перехваченные HTTPS-соединения. Браузер этому сертификату не доверяет и показывает предупреждение на каждой странице. Без установки сертификата работать с HTTPS-сайтами (а это все CTF-площадки) невозможно.

Установка сертификата в Firefox

  1. Убедитесь, что Burp Suite запущен, а браузер настроен на прокси (через FoxyProxy или вручную).
  2. Перейдите в браузере на http://burp (именно http, без s) — откроется страница Burp Suite.
  3. Нажмите CA Certificate — скачается файл cacert.der.
  4. В Firefox: Settings → Privacy & Security → прокрутите до «Certificates» → View Certificates.
  5. Вкладка Authorities → Import → выберите скачанный cacert.der.
  6. В появившемся окне отметьте «Trust this CA to identify websites» → OK.

Установка сертификата в Chrome

  1. Скачайте cacert.der с http://burp (шаги 1-3 те же).
  2. В Chrome: Settings → Privacy and Security → Security → Manage certificates.
  3. В Windows: вкладка Trusted Root Certification Authorities → Import → выберите файл → Next → Finish.
  4. В Linux/macOS: Chrome использует системное хранилище — добавьте через certutil (Linux) или Keychain Access (macOS).

Проверка

Перейдите через прокси на любой HTTPS-сайт (например, google.com). Если настройка корректна — страница загрузится без предупреждений, а в Burp Suite во вкладке Proxy → HTTP History вы увидите расшифрованный HTTPS-трафик. Браузер по-прежнему ругается на сертификат? Перезапустите его после импорта и убедитесь, что отметили галочку «Trust this CA to identify websites».

Первый перехват HTTP-запросов в Burp Suite

Настройка завершена. Теперь — как работает перехват трафика. Это ядро всей работы с Burp Suite.

Intercept — перехват запроса в реальном времени

Вкладка Proxy → Intercept, кнопка должна показывать «Intercept is on». Перейдите в браузере на любой сайт — страница «зависнет», потому что Burp остановил запрос до отправки на сервер. В окне Intercept — сырой HTTP-запрос: метод, URL, заголовки, тело.

Три кнопки:

  • Forward — отправить запрос на сервер (можно предварительно отредактировать любое поле).
  • Drop — убить запрос: сервер его не получит.
  • Intercept is on/off — переключатель. Когда выключен, трафик проходит через Burp автоматически, без остановки.

Классическая ошибка новичка: забыть нажать Forward. Страница не грузится, кажется, что «всё сломалось» — а запрос просто ждёт в Burp. Нажали Forward — страница загрузилась. Я сам на это попался раз пять, прежде чем вбил в привычку.

HTTP History — анализ трафика без остановки

В большинстве случаев перехватывать каждый запрос не нужно — это неудобно и медленно. Гораздо практичнее выключить Intercept (Intercept is off) и работать через вкладку Proxy → HTTP History. Burp записывает все запросы и ответы в журнал, даже когда перехват выключен. Спокойно кликаете по CTF-заданию в браузере, а потом разбираете записанные запросы.

Нажмите на любую строку в HTTP History — справа содержимое запроса (вкладка Request) и ответ сервера (Response). Отсюда можно отправить запрос в Repeater (Ctrl+R) или Intruder (Ctrl+I) правым кликом.

Scope — фокус на цели вместо шума

При решении CTF-тасков браузер генерирует десятки запросов к сторонним доменам: Google Analytics, шрифты, CDN, рекламные трекеры. Они засоряют HTTP History и мешают найти нужный запрос к целевому серверу.

Решение — Scope. Вкладка Target → Site map. В левой панели находите домен CTF-задания (например, ctf.example.com), правый клик → Add to scope. Burp спросит, хотите ли исключить out-of-scope трафик — жмите Yes. Теперь в HTTP History включаете фильтр «Show only in-scope items» — и видите только запросы к целевому серверу.

Кажется мелочью, но на практике экономит минуты на каждом таске. Когда в HTTP History 300 запросов к Google и 5 к целевому серверу — без Scope вы потеряете время на поиск нужного.

Repeater: ручная модификация запросов для CTF

Repeater — инструмент для ручной повторной отправки HTTP-запросов с изменёнными параметрами. В CTF он используется постоянно: нашли запрос в HTTP History, отправили в Repeater (Ctrl+R), поменяли параметр, нажали Send, посмотрели ответ. Никаких форм в браузере — Repeater работает напрямую с HTTP.

Типичный сценарий: CTF-задание на IDOR (Insecure Direct Object Reference, подкатегория Broken Access Control — A01:2021 по OWASP). Авторизовались как пользователь с id=5, видите свой профиль. Перехватили GET-запрос к /api/user?id=5. Отправили в Repeater, поменяли id=5 на id=1 — получили данные администратора. Вот как это выглядит:

GET /api/user?id=1 HTTP/2
Host: ctf.example.com
Cookie: session=abc123def456
User-Agent: Mozilla/5.0
Accept: application/json

Нажимаете Send — в правой панели ответ сервера. Если пришли данные чужого пользователя — уязвимость подтверждена. Можно перебрать id от 1 до 10 вручную, но если нужно проверить сотни значений — это задача для Intruder.

Полезные приёмы в Repeater:

  • Смена метода — правый клик → Change request method. GET превращается в POST и наоборот. Некоторые CTF-таски эксплуатируют разницу в обработке методов (сервер проверяет авторизацию только для GET, а POST пропускает — бывает чаще, чем хотелось бы).
  • Сравнение ответов — откройте несколько вкладок с разными параметрами и сравнивайте ответы визуально. Различие в длине ответа (Content-Length) часто указывает на найденную уязвимость.
  • Работа с кодировками — при тестировании SQL-инъекций выделите payload и используйте Ctrl+Shift+U для URL-кодирования спецсимволов. Избавляет от ручного кодирования кавычек и пробелов.

Intruder: автоматизация перебора параметров

Intruder автоматически подставляет множество значений в указанные позиции запроса. В Community Edition он работает медленно (ограничение по скорости), но для CTF-тасков, где перебрать нужно 50-500 значений, хватает с запасом.

Workflow с Intruder:

  1. Найдите нужный запрос в HTTP History, отправьте в Intruder (Ctrl+I).
  2. Во вкладке Positions Burp автоматически выделит маркерами § все параметры. Нажмите Clear §, затем выделите только нужный параметр и нажмите Add §.
  3. Во вкладке Payloads добавьте список значений — вручную или загрузив файл.
  4. Нажмите Start attack.

Пример: задание на брутфорс PIN-кода. Перехватили POST-запрос к /verify-pin с параметром pin=1234. В Intruder отметили pin=§1234§, на вкладке Payloads задали Numbers от 0000 до 9999 с шагом 1 и min/max digits = 4. Запустили атаку и отсортировали результаты по столбцу Length — ответ с другой длиной, скорее всего, содержит флаг.

Режимы атак Intruder:

Режим Что делает Когда использовать
Sniper Подставляет payloads в одну позицию по очереди Перебор одного параметра (PIN, username)
Battering Ram Подставляет один payload во все позиции одновременно Когда один и тот же токен используется в нескольких местах
Pitchfork Использует параллельные списки для разных позиций Перебор пар логин-пароль из одного файла
Cluster Bomb Перебирает все комбинации списков Полный перебор username + password (количество запросов = произведение списков, так что аккуратнее)

Для CTF чаще всего хватает Sniper (один параметр) и Cluster Bomb (два параметра). Результаты сортируйте по Status code и Length — аномальные значения указывают на успешный payload.

Decoder и Comparer: вспомогательные инструменты

В CTF-тасках постоянно встречаются закодированные строки: Base64-токены в куках, URL-encoded параметры, hex-строки. Вместо онлайн-декодеров — встроенный Decoder: вставляете строку → выбираете Decode as Base64 (или URL, HTML, Hex) → результат. Работает и в обратную сторону: закодировать модифицированное значение и подставить обратно в запрос.

Практический пример: кука role=dXNlcg==. Вставили в Decoder → Decode as Base64 → user. Закодировали admin → YWRtaW4=. Подставили в запрос через Repeater — доступ к админ-панели. Классический CTF-таск на Cryptographic Failures (A02:2021 по OWASP). Я на такое попадал минимум на трёх площадках — авторы заданий обожают Base64 в куках.

Comparer полезен, когда два ответа сервера выглядят одинаково, но в одном есть флаг. Отправьте оба ответа в Comparer (правый клик → Send to Comparer), выберите Words или Bytes — Burp подсветит различия.

Решаем веб-таск: от первого запроса до флага

Соберём все инструменты в один рабочий процесс. Допустим, CTF-задание — страница интернет-магазина с возможностью добавить товар в корзину и «купить». Цель — купить товар за $0.

Шаг 1: Разведка. Открываем задание во встроенном браузере Burp (или в Firefox через FoxyProxy). Intercept выключен. Кликаем по страницам, добавляем товар в корзину, смотрим процесс покупки. Burp записывает всё в HTTP History.

Шаг 2: Анализ запросов. Открываем HTTP History, ищем запрос при добавлении товара. Находим: POST /api/cart/add с телом {"product_id": 1, "quantity": 1, "price": 29.99}. Цена передаётся с клиента — подозрительно. Кто доверяет клиенту цену товара?

Шаг 3: Модификация в Repeater. Отправляем запрос в Repeater (Ctrl+R). Меняем "price": 29.99 на "price": 0. Send. Ответ: 200 OK, товар добавлен в корзину за $0. Переходим к оплате — флаг.

Шаг 4: Если простая подмена не работает — пробуем отрицательную цену ("price": -29.99), нулевое количество ("quantity": 0), отрицательное количество. Каждый вариант — новая вкладка в Repeater. Сравниваем ответы по длине и содержимому.

Этот workflow покрывает большинство веб-тасков начального и среднего уровня. Ключевой навык — не в знании конкретной уязвимости, а в умении быстро найти нужный запрос в HTTP History, отправить в Repeater и методично проверить гипотезы.

Частые ошибки при настройке Burp Suite с нуля

Ошибка Симптом Решение
Не установлен сертификат CA Ошибка SEC_ERROR_UNKNOWN_ISSUER на каждом HTTPS-сайте Скачайте сертификат с http://burp и импортируйте в браузер
FoxyProxy не переключён на Burp Запросы не появляются в HTTP History Кликните на иконку FoxyProxy и выберите профиль «Burp Suite»
Burp не запущен, а прокси включён Браузер не загружает ни одну страницу Запустите Burp или отключите прокси в FoxyProxy
Intercept оставлен включённым Страница «зависает» при загрузке Нажмите Forward или переключите Intercept is off
Не настроен Scope HTTP History забит сотнями запросов к Google, CDN, трекерам Добавьте целевой домен в Scope через Target → Site map
Порт 8080 занят другим процессом Burp не запускает прокси-сервер Измените порт в Settings → Proxy → Proxy listeners (например, на 8081) и обновите настройки FoxyProxy

Ещё одна неочевидная штука: некоторые CTF-площадки используют WebSocket, а не обычные HTTP-запросы. Burp перехватывает WebSocket-трафик, но показывает его в отдельной вкладке Proxy → WebSockets history, а не в HTTP History. Если не видите нужных запросов — загляните туда.

Что делать после настройки

Burp Suite настроен, базовый workflow понятен. Дальше зависит от целей: для углубления в веб-уязвимости — PortSwigger Web Security Academy (бесплатная площадка от авторов Burp с тасками от простых до продвинутых, и она реально хороша). Для практики CTF — площадки с веб-категориями, где каждый таск можно разобрать через Repeater и Intruder.

Расширения, которые стоит поставить сразу (Extender → BApp Store):

  • JSON Beautifier — форматирует JSON в запросах и ответах. Без него API-ответы читать больно.
  • Autorize — автоматически проверяет, доступны ли запросы без авторизации или с другими правами. Для тасков на Broken Access Control — самое то.
  • Hackvertor — продвинутое кодирование и декодирование прямо в запросах, удобнее встроенного Decoder.

Горячие клавиши, которые экономят время: Ctrl+R — отправить в Repeater, Ctrl+I — отправить в Intruder, Ctrl+Shift+R — повторить последний запрос в Repeater.

За полтора года работы с Burp — сначала на CTF-площадках, потом на учебных пентестах — я пришёл к выводу: 80% веб-тасков решаются тремя действиями. Найти запрос в HTTP History. Отправить в Repeater. Поменять один параметр. Не нужен Scanner, не нужны десятки расширений, не нужна Pro-версия. Нужно понимание, какой параметр менять и почему. Многие новички тратят часы на изучение всех вкладок Burp Suite, хотя достаточно освоить Proxy + Repeater и начать решать таски — остальное придёт по ходу. Инструмент без практики бесполезен, а практика без инструмента — мучительна. Если хочешь пройти базу системно, от «что такое HTTP-запрос» до первых решённых задач — на IB Basics эту цепочку проходят за пару месяцев без воды.

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

Поделиться

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

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

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

Читайте также

Insecure Deserialization в CTF: PHP и Python

12 мин.

5

Insecure Deserialization в CTF: PHP и Python

Пошаговый разбор insecure deserialization в CTF: gadget chains PHP (CVE-2020-15148, phpggc), pickle RCE в Python, black-box брутфорс и PHAR-вектор

4 ОКТЯБРЬ, 2026

Основы сетей для CTF: OSI, TCP/IP и анализ PCAP

14 мин.

5

Основы сетей для CTF: OSI, TCP/IP и анализ PCAP

7 уровней OSI на языке CTF-задач: где в пакете искать флаг, фильтры Wireshark и tcpdump, пошаговый workflow разбора PCAP и привязка атак к MITRE ATT&CK.

4 ОКТЯБРЬ, 2026

SSRF в CTF: эксплуатация уязвимости до флага

14 мин.

7

SSRF в CTF: эксплуатация уязвимости до флага

Пошаговый разбор SSRF в CTF: OOB-подтверждение, сканирование портов, cloud metadata, gopher RCE, DNS rebinding и blacklist bypass — с payload'ами и командами.

3 ОКТЯБРЬ, 2026