Главная / Блог / Burp Suite для начинающих: от прокси до флага

12 мин.00

Burp Suite для начинающих: от прокси до флага

Burp Suite для начинающих: от прокси до флага

На последнем jeopardy участник из нашей команды потратил 40 минут на web-таск — менял параметры через адресную строку, открывал DevTools, вручную правил cookie в Application. Ноль результата. Я подсел, открыл Burp Suite, перехватил POST-запрос к /api/checkout, заменил поле price с 13370 на 1 и забрал флаг за полторы минуты. Разница — не в скилле, а в инструменте. Когда видишь каждый байт трафика и можешь поменять его до отправки на сервер, web-таски перестают быть загадкой. Дальше — пошаговое руководство, как настроить Burp Suite для начинающих и начать решать web-таски.

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

Burp Suite Community Edition бесплатна и покрывает всё, что нужно для CTF: Proxy с перехватом, Repeater, Intruder (с ограничением скорости), Decoder, Comparer. Инсталлятор качается с portswigger.net и уже включает Java — ставить отдельно не надо. Подробнее — в нашем статье о создание ctf заданий.

При первом запуске: Temporary project → Use Burp defaults → Start Burp. Для CTF сохранять проект на диск бессмысленно — задание решается за одну сессию.

Разница между редакциями:

Возможность Community (бесплатно) Professional ($449/год)
Proxy и Intercept Да Да
Repeater Да Да
Intruder Ограниченная скорость Полная скорость
Decoder, Comparer Да Да
Активный Scanner Нет Да
Collaborator (OOB) Нет Да
BApp Store Частично Полностью

Для web CTF заданий Community хватает с запасом. Полноскоростной Intruder и активный Scanner — единственные серьёзные ограничения, и на CTF-тасках с небольшими словарями и ручным тестированием они некритичны.

Настройка прокси Burp Suite и подключение браузера

Burp работает как перехватывающий прокси-сервер. По сути это Adversary-in-the-Middle (T1557 по MITRE ATT&CK), только применяете вы её к собственному трафику в контролируемой среде. По умолчанию Burp слушает на 127.0.0.1:8080. Браузер нужно направить через этот прокси, чтобы каждый HTTP/HTTPS-запрос проходил через Burp.

Быстрый путь: встроенный браузер Burp

Burp включает встроенный Chromium с предустановленным CA-сертификатом. Proxy → Intercept → Open Browser — и можно сразу перехватывать HTTPS без возни с сертификатами. Для быстрого решения одиночного CTF-таска это самый короткий путь. Минус — неудобно переключаться между обычным серфингом и работой через прокси.

FoxyProxy + Firefox для постоянной работы

Для регулярного участия в CTF удобнее связка Firefox + FoxyProxy. Создаёте профиль «Burp» и переключаетесь между прокси и прямым соединением одним кликом. Без FoxyProxy каждый раз придётся лезть в Firefox → Настройки → Основные → Параметры сети → Ручная настройка прокси. Уже на третьем таске это начинает бесить.

Настройка FoxyProxy: установите расширение из addons.mozilla.org, создайте профиль с Title «Burp», Proxy Type — HTTP, Hostname — 127.0.0.1, Port — 8080. Активируйте профиль — иконка сменит цвет, трафик пойдёт через Burp.

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

Без CA-сертификата Burp не расшифрует HTTPS-трафик, и каждый сайт покажет ошибку SSL. Встроенный браузер — сертификат уже на месте. Для Firefox:

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

Проверка: откройте любой HTTPS-сайт через прокси. Нет предупреждений, а в Burp → Proxy → HTTP History появился запрос — перехват трафика браузера работает.

Типичная ошибка новичков: забыть установить сертификат и убить полчаса на «почему ничего не грузится». Вторая по частоте — не отключить кэш браузера. Ответы приходят из кэша, минуя Burp, и вы сидите думаете, что Burp сломался.

Перехват запросов Burp Suite: Proxy и HTTP History

Proxy — ядро всей работы. Здесь происходит перехват запросов Burp Suite, отсюда данные уходят в остальные инструменты.

HTTP History: пассивная разведка приложения

Прежде чем что-то перехватывать — просто походите по целевому приложению с выключенным Intercept (кнопка Intercept is off). Все запросы и ответы записываются в Proxy → HTTP History. Это пассивная фаза, и пропускать её — ошибка. Вы увидите:

  • Все эндпоинты приложения, включая фоновые API-вызовы, которые в браузере не видны
  • Параметры в query string, POST-телах, JSON-пейлоадах и cookies
  • Кастомные заголовки вроде X-Role, X-Admin, Authorization — подсказки к логике доступа
  • Формат сессионных токенов: opaque string, Base64-блоб или JWT

Сортировка по Status Code моментально выводит на интересное: 302-редиректы (куда перенаправляет?) и 403-запреты (что скрывают?). В CTF 403 часто означает «здесь лежит что-то ценное, но тебя не пускают» — именно такие эндпоинты стоит ковырять первыми.

Intercept: остановка запроса на лету

Включите Intercept is on — каждый исходящий запрос замораживается в Burp до вашего решения. Три кнопки:

  • Forward — отправить запрос на сервер (после правок или без)
  • Drop — уничтожить запрос, он не дойдёт до сервера
  • Action — переслать запрос в Repeater, Intruder или другой инструмент

Момент, который русскоязычные руководства обычно пропускают: включайте Intercept только перед конкретным действием (нажатие кнопки, отправка формы), а не для общего серфинга. Иначе будете десятки раз жать Forward на фоновые запросы к аналитике и CDN, потеряете фокус и пропустите нужный запрос. Intercept OFF для маппинга приложения, Intercept ON для точечной модификации.

Перехват ответов сервера

Функция, о которой молчат почти все русскоязычные руководства: перехватывать можно не только запросы, но и ответы. Proxy → Options → Intercept Server Responses — включите. Burp остановит ответ сервера до того, как он попадёт в браузер. Зачем: убрать JavaScript-проверку, изменить admin: false на admin: true в JSON-ответе, подсмотреть скрытые данные до рендеринга страницы. На CTF я этим пользуюсь реже, чем перехватом запросов, но когда нужно — экономит кучу времени.

Scope: фильтрация шума

CTF-таски работают на конкретном хосте. HTTP History быстро засоряется запросами к CDN, аналитике и внешним ресурсам. Правый клик на запросе к целевому хосту → Add to scope. В HTTP History включите фильтр Show only in-scope items, а в Proxy → Options активируйте «And URL is in target scope». Теперь Intercept ловит только запросы к вашей цели, а не весь мусор.

Модификация HTTP запросов: обход клиентской валидации

Этот паттерн встречается в подавляющем большинстве web CTF заданий. Форма на странице ограничивает ввод через JavaScript: readonly-поля, допустимые типы файлов, числовые диапазоны. JavaScript выполняется в вашем браузере, а на сервере этих проверок может не быть. По документам — нельзя. На практике — элементарно.

Классический пример из Web Security Academy от PortSwigger — лаба с манипуляцией ценой. У вас $100 на счету, куртка стоит $1337. Через интерфейс цену не изменить. Через Burp:

POST /cart HTTP/2
Host: target.web-security-academy.net
Content-Type: application/x-www-form-urlencoded

productId=2&redir=PRODUCT&quantity=1&price=1

Оригинальное значение price=133700 (в центах) заменено на price=1. Forward — в корзине куртка за 1 цент. Интерфейс не позволял, но Burp Suite работает на уровне HTTP, ниже JavaScript.

Алгоритм для любого таска с клиентской валидацией:

  1. Заполните форму валидными данными — пусть JavaScript пропустит отправку
  2. Включите Intercept is on прямо перед нажатием Submit
  3. Когда запрос появится в Burp — измените нужные параметры: role=user → role=admin, filename="photo.jpg" → filename="shell.php", quantity=1 → quantity=-1
  4. Forward — сервер получит вашу версию, JavaScript об этом не узнает

По MITRE ATT&CK модификация запросов к веб-приложению — техника Exploit Public-Facing Application (T1190, Initial Access). Именно это моделируют CTF-задания.

Burp Suite Repeater: ручное тестирование в web CTF заданиях

Repeater — инструмент, в котором вы проведёте больше всего времени при решении CTF. Отправляете один и тот же запрос с разными параметрами, мгновенно видите ответ сервера. Никакого повторного перехвата, никакого переключения вкладок.

Отправка: правый клик на любом запросе в HTTP History или Intercept → Send to Repeater (Ctrl+R). Слева — редактируемый запрос, справа — ответ. Send → получили ответ. Изменили параметр → Send снова. Просто и быстро.

Типичные CTF-сценарии в Repeater

IDOR (Insecure Direct Object Reference). Перехватите GET /api/user/1337/profile. В Repeater замените 1337 на 1, 2, 3 и отправьте каждый вариант. Сервер отдаёт данные чужих пользователей без проверки авторизации? Это IDOR — одна из самых частых уязвимостей в CTF (OWASP A01:2021 Broken Access Control). На реальных проектах, кстати, тоже встречается пугающе часто.

SQL Injection. Запрос содержит id=5. В Repeater пробуете id=5' — если размер ответа или статус-код изменились, это маркер инъекции (OWASP A03:2021 Injection). Одиночная кавычка не даёт видимой разницы? Пробуйте комментарии (--, #), логические конструкции (' OR '1'='1) или тайминг-инъекции (SLEEP()). Дальше: id=5' OR 1=1--, id=5' UNION SELECT null,null--. Repeater позволяет итерировать пейлоады за секунды.

Манипуляция cookie и JWT. Скопируйте запрос с сессионным cookie в Repeater. Cookie выглядит как Base64 — декодируйте через Decoder (или прямо в Inspector панели Repeater). Часто внутри обнаруживается JSON с полем "admin": false или "role": "user". Меняете значение, кодируете обратно, вставляете в cookie и отправляете. Эта техника связана с Steal Web Session Cookie (T1539) и Web Cookies (T1606.001) по MITRE ATT&CK.

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

  • Status code: 200 → успех, 403 → близко но не пускают, 302 → перенаправление (куда?)
  • Content-Length: разница в размере между вариантами — часто ключ к правильному пейлоаду
  • Тело ответа: ищите флаг (flag{...}, CTF{...}), SQL-ошибки с именами таблиц, пути к файлам в сообщениях об ошибках

Burp Suite Intruder: автоматический перебор параметров

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

Настройка атаки

  1. Отправьте запрос в Intruder: правый клик → Send to Intruder (Ctrl+I)
  2. Вкладка Positions: Burp автоматически расставит маркеры § вокруг предполагаемых параметров. Нажмите Clear §, затем выделите конкретный параметр и Add §
POST /login HTTP/1.1
Host: target.ctf.local
Content-Type: application/x-www-form-urlencoded

username=admin&password=§password123§
  1. Вкладка Payloads: загрузите список значений — wordlists из SecLists, числовые последовательности или собственный список
  2. Start attack

Четыре типа атак:

Тип Когда использовать Пример в CTF
Sniper Один параметр, один wordlist Перебор ID: /user/§1§/profile
Battering Ram Одно значение во все позиции Одинаковый токен в нескольких заголовках
Pitchfork Разные списки синхронно (строка 1 из списка A + строка 1 из списка B) Пары login:password из утечки
Cluster Bomb Все комбинации всех списков Полный перебор login + password

Для CTF чаще всего нужен Sniper (перебор одного параметра) и изредка Cluster Bomb (брутфорс пары логин/пароль). Cluster Bomb с двумя списками по 100 значений генерирует 10 000 запросов — в Community Edition это займёт время, но для CTF обычно хватает списков по 20-50 значений.

По MITRE ATT&CK перебор паролей через Intruder — техника Password Guessing (T1110.001, Credential Access).

Анализ результатов

Сортируйте по столбцу Length. Все ответы — 403 по 250 байт, а один — 200 по 1200 байт? Это ваш результат. Тот же приём со Status code: один 302-редирект среди сотни 401 — индикатор правильного пароля. Я обычно сразу кликаю на заголовок столбца Length — аномалия всплывает моментально.

Decoder и Comparer: кодировки и сравнение в CTF

Decoder для расшифровки данных

В CTF постоянно встречаются закодированные данные: Base64-токены, URL-encoded параметры, hex-значения, иногда цепочки кодировок. Decoder конвертирует на лету:

  • Base64 Decode/Encode — разобрать cookie или собрать модифицированный токен. Пример: YWRtaW46dHJ1ZQ== → admin:true
  • URL Decode — прочитать %3Cscript%3Ealert(1)%3C%2Fscript%3E как <script>alert(1)</script>
  • HTML Decode — раскодировать HTML-entities в читаемый текст
  • Hex → ASCII — расшифровать hex-дампы

Цепочки декодирования — частый CTF-приём: значение сначала Base64, потом URL-encoded, потом снова Base64. Такая матрёшка. В Decoder можно нажать Smart Decode — Burp попробует автоматически определить кодировку — или последовательно выбирать формат вручную.

Comparer для поиска различий

Comparer побайтово сравнивает два ответа или запроса. Два ответа выглядят визуально одинаковыми, но один содержит скрытый параметр или отличается на символ — глазами не заметите, Comparer покажет. Отправьте оба ответа из Repeater в Comparer (правый клик → Send to Comparer) и нажмите Words или Bytes — Burp подсветит различия. В CTF это помогает найти разницу между «правильным» и «неправильным» ответом, когда оба возвращают 200 OK.

Пошаговый воркфлоу для web CTF задания

Порядок действий, который работает на большинстве jeopardy web-тасков:

  1. Разведка. Откройте таск в браузере через Burp-прокси с Intercept OFF. Прокликайте все страницы, формы, кнопки. 3-5 минут на изучение HTTP History — не жалейте этого времени.

  2. Scope. Добавьте хост таска в Scope, включите фильтр Show only in-scope items — уберите шум.

  3. Карта эндпоинтов. Просмотрите все URL в HTTP History. /api/... вызовы, параметры id, role, token, admin, кастомные заголовки — запишите подозрительные.

  4. Repeater для ручного теста. Нашли запрос с интересными параметрами — Ctrl+R, начинайте менять значения. Проверяйте IDOR, меняйте роли, пробуйте спецсимволы для SQL-инъекций.

  5. Intercept для обхода валидации. Форма не пускает нужные символы или ограничивает тип файла — заполните валидно, включите Intercept ON, подмените перед отправкой.

  6. Intruder для перебора. Нужно подобрать ID, пароль или скрытый параметр — Ctrl+I, загрузите wordlist, сортируйте результаты по Length.

  7. Decoder для кодировок. Непонятный cookie или токен — скопируйте в Decoder, попробуйте Smart Decode или Base64 вручную.

  8. Comparer для сравнения. Два ответа выглядят одинаково — отправьте оба в Comparer, ищите побайтовую разницу.

Горячие клавиши для ускорения работы

Комбинация Действие
Ctrl+R Отправить в Repeater
Ctrl+I Отправить в Intruder
Ctrl+Shift+R Повторить запрос в Repeater
Ctrl+F Поиск по запросу/ответу

Четыре комбинации покрывают 90% действий. Запомните Ctrl+R первым — как пользоваться Burp Suite эффективно сводится к скорости работы с Repeater.

«Зачем Burp, если есть DevTools?» — слышу регулярно. DevTools показывают трафик, но не дают контроля. Нельзя остановить POST на полпути и изменить тело. Нельзя за секунду отправить тот же запрос с тремя разными значениями параметра. Нельзя прогнать 500 вариантов одного поля и отсортировать по размеру ответа. DevTools — это наблюдение. Burp — управление.

По опыту решения CTF-тасков, 80% web-заданий закрываются через Repeater. Не через Intruder, не через Scanner — через ручную модификацию одного-двух параметров и внимательное сравнение ответов. Intruder нужен реже, чем кажется на старте. А вот привычка тратить первые пять минут на пассивную разведку через HTTP History, составить карту эндпоинтов и только потом лезть менять параметры — это то, что отличает решённый таск от «ну, пробовал XSS в каждое поле и ничего не нашёл».

Ещё один момент: Community Edition достаточна для 95% CTF-тасков. Не покупайте Pro «для обучения» — научитесь решать задачи в Community, поймите свои ограничения и уже потом решите, нужен ли Pro. Если хочешь не просто writeup, а пройти каждую атаку самостоятельно от начала до конца — на WAPT эту цепочку проходят в течение двух модулей с лабами.

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

Поделиться

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

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

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

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

TryHackMe или Hack The Box что выбрать: план на 3 месяца

12 мин.

7

TryHackMe или Hack The Box что выбрать: план на 3 месяца

Понедельный план обучения пентесту: конкретные комнаты THM, машины HTB, инструменты на каждую неделю. Актуальные цены, алгоритм выбора, метрики прогресса.

25 СЕНТЯБРЬ, 2026

Command Injection в CTF: от разведки до RCE

11 мин.

9

Command Injection в CTF: от разведки до RCE

Пошаговая методология эксплуатации command injection в CTF: разделители команд, blind-инъекции, ANSI-C нотация, bypass пробелов и WAF — с реальными CVE и пейлоадами.

25 СЕНТЯБРЬ, 2026

Bash скрипты для CTF: от сканера портов до эксплойтов

13 мин.

9

Bash скрипты для CTF: от сканера портов до эксплойтов

3 рабочих bash-скрипта для CTF с построчным разбором — сканер портов без nmap через /dev/tcp, парсинг вывода grep/awk/sed и брутфорс HTTP-форм через curl.

24 СЕНТЯБРЬ, 2026