
Первый раз я открыл Burp Suite на задаче с HackTheBox — и 40 минут провозился с настройкой прокси. Ещё 20 ушло на ошибку сертификата вместо формы логина. До самого задания добрался через полтора часа. А задача решалась заменой одного параметра в POST-запросе. Три секунды. Соотношение «борьба с инструментом» к «борьба с задачей» — примерно 30 к 1.
Эта статья — чтобы у вас вышло наоборот: настроить Burp Suite Community Edition за десять минут и сразу перейти к перехвату запросов, изменению параметров и решению веб-задач CTF.
Burp Suite — HTTP-прокси, который встаёт между браузером и веб-сервером. Каждый запрос и каждый ответ проходит через него. Вы видите всё в сыром виде: заголовки, куки, скрытые параметры, токены — то, что обычный пользователь никогда не замечает. Подробнее — в нашем статье о пентест веб-приложений.
В терминах MITRE ATT&CK перехват трафика через прокси моделирует технику Adversary-in-the-Middle (T1557, Credential Access). Меняете параметр на лету — Transmitted Data Manipulation (T1565.002, Impact). Перебираете пароли или ID через Intruder — Brute Force (T1110, Credential Access). На CTF-соревнованиях вы отрабатываете эти техники в безопасной среде, чтобы на реальном пентесте понимать, что происходит «под капотом».
В полной цепочке атаки на веб-приложение Burp Suite покрывает этапы разведки и начального доступа (Initial Access, T1190 — Exploit Public-Facing Application). Сначала исследуете приложение через Proxy: какие эндпоинты существуют, какие параметры принимают, как устроена аутентификация. Потом через Repeater точечно тестируете гипотезы — «а что будет, если подставить role=admin?». И наконец через Intruder автоматизируете перебор, когда нужно проверить сотни значений. Всё это — до получения первоначального доступа. Дальше начинается пост-эксплуатация, но там уже другие инструменты.
На CTF для новичков (PicoCTF, HackTheBox Starting Point) большинство веб-задач решаются именно так: перехватил — изменил — получил флаг. Никаких сложных эксплойтов, чистая работа с HTTP-параметрами. Burp превращает это из магии в рутину.
Прежде чем запускать Burp Suite, проверьте, что машина тянет.
Требования к окружению: - ОС: Windows 10+, macOS 10.14+, любой современный дистрибутив Linux (на Kali Burp предустановлен — ничего качать не надо) - RAM: минимум 4 ГБ, рекомендуется 8 ГБ (Burp на Java, при активном сканировании ест память как не в себя) - CPU: 2+ ядра - Java: встроена в инсталлятор начиная с версии 2026.4 - Диск: 500 МБ свободного места - Сеть: доступ к интернету для работы с CTF-платформами; для локальных задач — не нужен
Установка: 1. Скачайте Community Edition с portswigger.net/burp/communitydownload — бесплатная версия, которой хватит для всех задач из этой статьи 2. Запустите инсталлятор (права администратора не нужны) 3. При первом запуске выберите Temporary project и Use Burp defaults — для CTF этого достаточно
На Kali Linux Burp уже стоит: запускайте через меню приложений или командой burpsuite в терминале. PortSwigger активно поддерживает Community Edition — обновления выходят регулярно, последний релиз включает единый инсталлятор для Community и Professional.
Вот тут новички теряют больше всего времени. Два рабочих способа настроить перехват запросов — и выбор между ними реально влияет на ваш комфорт.
В последних версиях Burp Suite есть встроенный Chromium, который уже настроен на работу через прокси. Откройте вкладку Proxy, нажмите Open Browser — всё. Никаких расширений, никаких сертификатов. Браузер откроется с прокси на 127.0.0.1:8080 и доверенным CA-сертификатом Burp.
Для первых CTF-задач — оптимальный путь. Экономите 15-20 минут настройки и сразу переходите к делу.
Хотите использовать свой браузер с расширениями (например, с закладками CTF-платформ) — понадобится ручная настройка.
Ставите расширение FoxyProxy для Firefox или Chrome. Создаёте профиль: тип — HTTP, хост — 127.0.0.1, порт — 8080. Теперь одним кликом по иконке FoxyProxy переключаете трафик через Burp или напрямую. Без FoxyProxy придётся каждый раз лезть в настройки браузера — неудобно и забывается. Забыли выключить прокси → сайты не грузятся → паника.
Но при ручной настройке вас встретит проблема: HTTPS-сайты покажут ошибку сертификата. Burp перехватывает зашифрованный трафик, подменяя оригинальный TLS-сертификат своим. Браузер ему не доверяет — и правильно делает, потому что не знает, что прокси поставили вы сами.
Чтобы починить, установите CA-сертификат Burp в браузер:
1. При запущенном Burp откройте в браузере http://burp
2. Нажмите CA Certificate — скачается файл cacert.der
3. В Firefox: Настройки → Приватность и защита → Сертификаты → Просмотр сертификатов → вкладка Центры сертификации → Импорт → выберите файл → отметьте Доверять при идентификации веб-сайтов
После этого HTTPS-трафик пойдёт через Burp без предупреждений. Но если честно — для CTF-задач встроенный браузер проще и быстрее. Берите его.
Intercept — ядро Burp Suite для CTF. Когда включён режим перехвата, каждый HTTP-запрос из браузера замирает в окне Burp. Вы видите его целиком: метод, URL, заголовки, тело. Можете изменить что угодно и отправить дальше кнопкой Forward. Или убить запрос — Drop.
Откройте вкладку Proxy → Intercept. Убедитесь, что переключатель показывает Intercept is on. Перейдите в браузере на любой сайт — страница не загрузится. Это нормально: запрос застрял в Burp и ждёт вашего решения.
Нажмите Forward несколько раз, чтобы пропустить запросы. Страница загрузится. Каждый Forward отправляет перехваченный запрос серверу и ловит следующий. Браузеры генерируют десятки запросов на одну страницу (скрипты, стили, картинки, метрики), поэтому для обычного серфинга перехват лучше выключить — переключите на Intercept is off и работайте через HTTP history, где все запросы пишутся автоматически.
Типичная CTF-задача для новичков: форма логина со скрытым полем admin=false. Цель — попасть в админ-панель.
На практике это выглядит так:
1. Включите Intercept is on
2. Заполните форму логина на CTF-задаче и нажмите «Войти»
3. В Burp появится POST-запрос с телом username=guest&password=test&admin=false
4. Измените admin=false на admin=true прямо в окне Intercept
5. Нажмите Forward
6. В браузере увидите флаг или админ-панель
Работает, потому что разработчик проверяет параметр admin только на клиенте (в HTML-форме), но не на сервере. По OWASP это A01:2021 — Broken Access Control: ограничения доступа не проверяются на стороне сервера. На реальном пентесте такая находка — критическая уязвимость. На CTF — лёгкие очки.
Горячие клавиши: Ctrl+R — запрос в Repeater, Ctrl+I — в Intruder, Ctrl+F — поиск по тексту запроса. Запомните эти три — сэкономят кучу кликов.
Repeater — второй инструмент, который вы будете использовать на каждой CTF-задаче. Отличие от Intercept: здесь вы работаете с запросом вручную, жмёте Send и сразу видите ответ сервера в соседней панели. Меняете параметр, отправляете снова, сравниваете ответы.
Рабочий процесс:
1. В HTTP history найдите нужный запрос (например, /api/user?id=1)
2. Правой кнопкой → Send to Repeater (или Ctrl+R)
3. Перейдите на вкладку Repeater
4. Измените параметр — id=1 на id=2
5. Нажмите Send
6. В правой панели — ответ: другой пользователь, другие данные
Repeater незаменим, когда тестируете гипотезы. Подставили role=admin — не сработало. role=1 — мимо. isAdmin=true — флаг. Каждая итерация занимает секунды, потому что не нужно заново заполнять форму в браузере.
IDOR (Insecure Direct Object Reference) — одна из самых частых веб-уязвимостей на CTF и в реальных приложениях. Суть: сервер выдаёт данные по числовому ID без проверки прав доступа. Вы авторизованы как пользователь с id=5, но запрашиваете данные id=1 — и сервер их отдаёт.
В Repeater это выглядит так:
GET /api/profile?id=5 HTTP/2
Host: ctf-challenge.example.com
Cookie: session=abc123
---
HTTP/2 200 OK
{"name":"guest","flag":"nope"}
Меняете id=5 на id=1, жмёте Send:
GET /api/profile?id=1 HTTP/2
Host: ctf-challenge.example.com
Cookie: session=abc123
---
HTTP/2 200 OK
{"name":"admin","flag":"CTF{idor_is_easy}"}
Сервер не проверил, имеете ли вы право видеть чужой профиль. Снова A01:2021 — Broken Access Control. На пентесте это уходит в отчёт как критика. На CTF — забрали флаг и пошли дальше.
Ограничение: Repeater работает с одним запросом за раз. Нужно проверить сотни ID — это задача для Intruder.
Intruder автоматизирует то, что вы делали в Repeater вручную: подставляет разные значения в указанную позицию запроса и показывает все ответы в таблице. По сути это инструмент для Brute Force (T1110, MITRE ATT&CK) — перебора паролей, токенов, ID и чего угодно ещё.
Рабочий процесс:
1. Отправьте запрос в Intruder: правая кнопка → Send to Intruder (или Ctrl+I)
2. На вкладке Positions Burp выделит символами § все параметры для перебора. Нажмите Clear §, чтобы сбросить
3. Выделите значение для перебора (например, 5 в id=5) и нажмите Add §. Получится id=§5§
4. На вкладке Payloads добавьте список значений — числа от 1 до 100, словарь паролей, набор строк
5. Нажмите Start attack
Intruder покажет таблицу результатов: каждый запрос, код ответа, длина ответа. Ищите аномалии: 99 запросов вернули 150 байт, а один — 450. Этот один и содержит флаг.
Ограничение Community Edition: в бесплатной версии Intruder работает медленно — примерно один запрос в секунду. Для CTF, где нужно перебрать 100-200 значений, терпимо (пара минут). Для реального брутфорса с миллионом комбинаций — нет. Professional Edition снимает ограничение и добавляет многопоточность.
Для CTF новичкам хватит двух:
Когда Intruder не поможет: если приложение использует CSRF-токены — каждый запрос требует свежий токен, стандартный Intruder не справится без расширений (в Pro есть макросы). Если сервер блокирует после N неудачных попыток — перебор без задержек приведёт к блокировке IP.
Decoder — встроенная утилита для кодирования и декодирования данных. На CTF вы будете натыкаться на Base64, URL-encoding, HTML-entities в куках, токенах и скрытых полях. Вместо онлайн-декодеров — вкладка Decoder прямо в Burp.
Типичный сценарий: видите в куке dXNlcj1hZG1pbg==. Вставляете в Decoder, жмёте Decode as → Base64, получаете user=admin. Теперь понятно, как приложение хранит роль пользователя — и можно подменить значение.
Обратная операция: меняете user=admin на user=superadmin, жмёте Encode as → Base64, получаете dXNlcj1zdXBlcmFkbWlu, подставляете в куку и отправляете через Repeater.
Decoder также умеет хешировать (MD5, SHA-1, SHA-256) — пригодится, когда на CTF нужно подобрать хеш или проверить, совпадает ли ваше предположение с хешем из базы.
Собираем всё вместе на примере типичной задачи уровня easy с beginner-CTF-площадок.
Условие: веб-приложение с формой логина. Нужно получить флаг через обход аутентификации.
Шаг 1: Разведка. Открываете сайт задачи во встроенном браузере Burp с выключенным перехватом (Intercept is off). Проходите по всем страницам, заполняете формы — Burp пишет всё в HTTP history. Смотрите Target → Site map — там появляется структура сайта: эндпоинты, методы, параметры.
Шаг 2: Анализ запроса. В HTTP history находите POST-запрос к /login. Тело: username=admin&password=test123. Ответ — 302 Redirect на /login?error=invalid. Стандартное поведение при неверных кредах.
Шаг 3: Тестирование в Repeater. Отправляете запрос логина в Repeater (Ctrl+R). Пробуете классические SQL-инъекции в поле username: значение admin' OR '1'='1' -- (A03:2021 — Injection по OWASP). Если приложение не фильтрует ввод, SQL-запрос на сервере превратится из SELECT * FROM users WHERE username='admin' AND password='test' в SELECT * FROM users WHERE username='admin' OR '1'='1' --' AND password='test' — условие всегда истинно, сервер вернёт данные первого пользователя.
Шаг 4: Анализ ответа. Если инъекция сработала — ответ изменится: вместо 302 → /login?error=invalid увидите 302 → /dashboard или 200 OK с содержимым админ-панели и флагом.
Шаг 5: Если инъекция не сработала — копаете дальше. Проверьте заголовки: может, в куке сидит Base64-значение роли. Проверьте скрытые поля формы. Попробуйте другие эндпоинты из Site map. CTF-задачи всегда имеют решение — вопрос в том, какой вектор предусмотрел автор.
Вся эта последовательность — разведка, гипотеза, тест, анализ — и есть методология тестирования веб-приложений. Burp Suite делает каждый шаг быстрым и воспроизводимым.
Community Edition — полноценный инструмент для обучения и CTF, но с конкретными ограничениями:
| Возможность | Community Edition | Professional |
|---|---|---|
| Proxy, Repeater, Decoder | Полная функциональность | Полная функциональность |
| Intruder (скорость) | ~1 запрос/сек | Без ограничений, многопоточность |
| Scanner (автопоиск уязвимостей) | Нет | Да |
| Burp Collaborator (blind SSRF/XXE) | Нет | Да |
| Сохранение проектов | Только Temporary | На диск с полной историей |
| BApp Store (расширения) | Частично | Все расширения |
Для CTF уровня easy и medium Community Edition хватает с запасом. Упрётесь в ограничения, когда: - Задача требует blind-инъекции с out-of-band каналом (нужен Collaborator) - Нужен массовый перебор с десятками тысяч значений (Intruder слишком медленный) - Хотите автоматически просканировать приложение на стандартные дыры (нужен Scanner)
Professional Edition стоит $449 в год (данные с сайта PortSwigger). Для новичка эта трата не оправдана — лучше потратить время на понимание HTTP-протокола и практику на бесплатных площадках. Когда начнёте участвовать в bug bounty и находить уязвимости за деньги, Pro окупится за одну-две находки.
«Включил Intercept, но ничего не перехватывается» — скорее всего, браузер не настроен на прокси Burp. Проверьте: FoxyProxy активен, прокси указывает на 127.0.0.1:8080. Если используете встроенный браузер — убедитесь, что открыли его через Open Browser на вкладке Proxy, а не свой обычный Chrome.
«Сайты не грузятся после настройки» — Burp не запущен, а прокси в браузере включен. Всё, что идёт на 127.0.0.1:8080, уходит в никуда. Либо запустите Burp, либо выключите прокси в FoxyProxy.
«HTTPS показывает ошибку сертификата» — не установлен CA-сертификат Burp. Решение описано выше в разделе про FoxyProxy. Или используйте встроенный браузер — там этой проблемы нет.
«Intercept is on, но страница всё равно грузится» — проверьте правила фильтрации в Proxy → Options → Intercept Client Requests. Burp по умолчанию может пропускать запросы к картинкам, CSS. Для CTF это обычно нормально — вас интересуют POST-запросы к API, а не загрузка иконок.
«Как найти нужный запрос среди сотен?» — фильтры в HTTP history: по хосту (только домен CTF-задачи), по методу (только POST), по коду ответа. Ещё помогает Scope: добавьте домен задачи в Target Scope, и Burp покажет только релевантный трафик. Без этого утонете в мусоре.
Освоили Proxy, Repeater и Intruder на уровне «меняю параметры и вижу результат» — следующий шаг: понять, какие уязвимости вы ищете и почему они работают. OWASP Top 10 — стартовая точка: A01 Broken Access Control (IDOR, обход ролей), A03 Injection (SQL, XSS, command injection), A02 Cryptographic Failures (слабые токены, пароли в открытом виде). Каждая категория — десятки CTF-задач, которые решаются через Burp.
PortSwigger Web Security Academy (бесплатная) — на мой взгляд, лучший полигон для отработки. Каждая лаба привязана к конкретной уязвимости с пояснением теории и пошаговым решением. Открываете лабу в браузере, подключаете Burp и решаете. Никаких дополнительных настроек.
Из расширений для BApp Store обратите внимание на JSON Beautifier (форматирует JSON-ответы для удобного чтения) и Autorize (автоматически тестирует авторизацию, отправляя те же запросы от имени другого пользователя). Оба доступны в Community Edition.
За полгода регулярной практики — две-три CTF-задачи в неделю — вы дойдёте до уровня, где Community Edition начнёт ограничивать. К этому моменту у вас будет достаточно понимания HTTP, чтобы сознательно выбрать: переходить на Pro для bug bounty или копать в другие инструменты пентеста.
Половина людей, которые «не могут решить CTF-задачу», на самом деле не могут разобраться с инструментом. Burp Suite — один из тех случаев, когда 90% пользы приходит от 10% функций: Proxy для перехвата, Repeater для ручного тестирования, Intruder для перебора, Decoder для раскодирования. Остальные вкладки (Sequencer, Comparer, Scanner) — для продвинутых сценариев, до которых вы доберётесь позже.
Меня периодически спрашивают, стоит ли сразу покупать Professional Edition для «серьёзного обучения». Моя позиция — нет, это типичная ошибка. Новичок с Pro всё равно использует те же четыре вкладки, что и пользователь Community. Разница проявляется, когда вы уже знаете, что такое blind SSRF и зачем вам Collaborator. А до этого момента Pro — лишняя трата.
Куда полезнее потратить время на понимание того, как HTTP-запрос превращается в SQL-запрос на сервере, почему замена id=5 на id=1 иногда отдаёт чужие данные, и как устроена сессионная аутентификация на уровне кук и токенов. Инструмент — удобный интерфейс для знаний, которые у вас уже есть. Без знаний даже Professional Edition не поможет решить задачу. На IB Basics показывают, что делать в первый месяц после «хочу в ИБ» — и Burp Suite там в первых модулях.
🚀 Хочешь закрепить на практике? Реши задачи по теме на HackerLab — категория «web».
0 комментариев
Пожалуйста, войдите, чтобы оставить комментарий.
Загрузка комментариев...