Глубокая настройка Burp Suite для тестирования API: гайд от практика

Тестирование REST API, GraphQL и gRPC — это не просто «еще один веб-сайт». Это работа с структурированными данными, сложными токенами аутентификации и часто — с огромным объемом запросов. Стандартный Burp Suite, out-of-the-box, хорош, но он создан для широкого спектра задач. По моему опыту, 90% пентестеров используют его в режиме «включил и работаю», упуская тонны возможностей для поиска уязвимостей. Эта статья — не перевод документации. Это собрание практических конфигураций и приемов, которые я вывел за годы специализированного тестирования API. Мы превратим ваш Burp из молотка в скальпель.


Часть 1: Фундамент — Настройка Проекта и Прокси

Прежде чем бросаться устанавливать расширения, нужно правильно заложить основу.

1.1. Создание dedicated проекта для API
Не стоит мешать тестирование WEB-приложения и API в одном проекте. Создайте новый проект с говорящим названием (Project_API_ClientX). Это упростит дальнейший анализ.

1.2. Fine-Tuning прокси-настроек
Перейдите в Proxy -> Options.

  • Binding: Убедитесь, что слушающий интерфейс — правильный (часто 127.0.0.1:8080).
  • Interception: Советую сразу отключить перехват (Intercept is off). Для теста API ручное просматривание каждого JSON-запроса — пустая трата времени. Мы будем работать с историей (Proxy History) и повтором запросов (Repeater).
  • Response Modification: В Response Modification я часто включаю опцию «Unhide hidden form fields». Иногда это может пригодиться и в API, если вы имеете дело с формами на стороне клиента, которые взаимодействуют с API.

1.3. Критически важные настройки TLS
Без этого вы не перехватите трафик с большинства современных приложений и Android/iOS устройств.

  • Перейдите в Proxy -> Options -> SSL.
  • Поставьте галочку «Generate a CA-signed certificate per host». Это решает кучу проблем с ошибками сертификатов.
  • Export the CA certificate: Экспортируйте сертификат Burp (в той же вкладке) и установите его в Trusted Root Store вашей ОС и на мобильное устройство/эмулятор, с которого будете работать.

Мое мнение: Многие недооценивают важность корректной настройки TLS. Ошибка «certificate pinning» или просто недоверенный сертификат — основная причина, по которой у новичков не выходит перехватить трафик. Потратьте 10 минут на эту настройку — сэкономите 2 часа на дебаггинг.


Часть 2: Must-Have Расширения (BApps) для API

Магазин расширений — вот где Burp раскрывает свой истинный потенциал. Установите через Extender -> BApp Store.

2.1. JSON Beautifier
Базовое, но жизненно необходимое. Превращает нечитаемый JSON {"data":{"user":{"name":"John"}}} в красивое отформатированное дерево. Обязательно к установке.

2.2. Turbo Intruder
Прямой наследник знаменитого Burp Intruder, но написанный на Python и designed для скорости. Его главная сила — память и многопоточность.

  • Для чего: Брутфорс логинов/токенов, подбор параметров IDOR, поиск путей в эндпоинтах (/api/v1/user/[id]), fuzzing.
  • Почему он, а не стандартный Intruder? Когда вам нужно отправить 100 000 запросов за минуту, стандартный Intruder просто «умрет». Turbo Intruder справится. Мой совет: используйте стандартный Intruder для простых задач (до 1000 запросов), а Turbo — для всего, что требует скорости и мощности.

Пример кода для Turbo Intruder (базовый):

def queueRequests(target, wordlists):
    engine = RequestEngine(endpoint=target.endpoint,
                           concurrentConnections=5,
                           requestsPerConnection=100,
                           pipeline=False
                           )
    for word in open('/path/to/wordlist.txt'):
        engine.queue(target.req, word.rstrip())

def handleResponse(req, interesting):
    if interesting:
        table.add(req)

Этот скрипт берет запрос, подставляет слова из файла в заданное место и быстро отправляет.

2.3. AuthMatrix
Визуальный инструмент для тестирования прав доступа.

  • Для чего: Вы создаете пользователей (User, Admin, SuperAdmin), назначаете им сессии (cookies/tokens) и затем проверяете, может ли User получить доступ к эндпоинту Admin. Наглядно и быстро.

2.4. Additional Scanner Checks
Набор дополнительных проверок для сканера. Позволяет находить более специфичные уязвимости, которые стандартный сканер может пропустить.

2.5. (Опционально) Flow
Расширение, которое пытается отобразить в виде графа взаимодействия между запросами. Может быть полезно для понимания сложных workflow в API.


Часть 3: Настройка Целей (Target) и Области (Scope)

Чтобы не утонуть в тысячах запросов к CDN, скриптам и сторонним сервисам.

3.1. Определение Scope
Перейдите в Target -> Scope.

  • Добавьте базовый URL вашего целевого API (напр., https://api.target.com/v1/*).
  • Включите опцию «Include in scope». Это заставит Burp фокусироваться только на том, что важно.

3.2. Выключение пассивного сканирования вне Scope
В Dashboard -> Live passive scanning -> Configure выберите опцию «Use custom scope» и укажите «Scan only in-scope items». Это разгрузит процессор и избавит лог от мусора.

Мое мнение: Игнорирование настройки Scope — самая частая организационная ошибка. Вы потратите 80% времени на анализ бесполезного трафика. Дисциплинируйте себя: сначала определи цель, потом бей.


Часть 4: Глубокая работа с инструментами

4.1. Repeater — ваш лучший друг
Repeater — это лаборатория для исследования каждого эндпоинта.

  • Отправка и модификация: Поиграйтесь с заголовками. Самые важные для API: Content-Type: application/jsonAuthorization: Bearer <token>X-API-KeyUser-Agent.
  • Пример теста на IDOR: Вы получили свой user_id: {"id": 100}. Нашли эндпоинт GET /api/v1/users/100. Отправьте его в Repeater и измените на 101. Посмотрите на ответ.
  • Работа с JSON: Меняйте значения параметров, добавляйте новые, пробуйте менять типы данных (строку на число, true на false).

4.2. Scanner для API
Запустите активное сканирование на важные эндпоинты (желательно в копии проекта или на тестовом стенде!).

  • На что обратить внимание: Сканер Burp отлично ищет SQLi, XSS, но может пропустить логические уязвимости (IDOR, Broken Object Level Authorization). Не полагайтесь на него на 100%. Его задача — найти низко висящие плоды, ваша задача — найти сложные логические цепочки.

4.3. Intruder для брутфорса и фаззинга

  • Sniper attack: Идеален для подбора одного параметра (например, ?user_id=§100§).
  • Pitchfork attack: Нужен когда у вас два и более списка значений, которые должны подставляться параллельно (логин и пароль, id и api_key).
  • Cluster bomb: Для полного перебора нескольких значений.

Часть 5: Мое экспертное мнение: Типичные ошибки и советы

  1. Ошибка №1: Игнорирование документации. Всегда ищите /swagger.json/openapi.json/api-docs. Часто вся структура API лежит открыто. Используйте инструменты вроде OpenAPI-to-Postman для импорта в Burp.
  2. Ошибка №2: Фокус только на JSON. API могут использовать XML (Content-Type: application/xml), что открывает дорогу для XXE-атак. Всегда меняйте Content-Type и пробуйте разные форматы данных.
  3. Ошибка №3: Слепая вера в сканер. Самые сочные уязвимости (логические) сканер не найдет. Ваш главный инструмент — это мозг, Repeater и Intruder.
  4. Совет: Создайте свой собственный чек-лист для теста API, основанный на OWASP API Security Top 10. Идите по пунктам: Broken Object Level Authorization, Excessive Data Exposure, Lack of Resources & Rate Limiting и т.д.
  5. Совет: Для работы с GraphQL установите специальное расширение (напр., InQL Scanner) или просто работайте через Repeater, отправляя POST-запросы с телами {"query": "{__schema { queryType { name } } }"}.

Заключение:

Глубокая настройка Burp Suite — это не разовая акция, а процесс. Начните с базовых шагов, описанных выше, установите ключевые расширения и настройте Scope. Затем, по мере роста вашего опыта, вы будете кастомизировать Burp под свои нужды. Помните: цель — не просто настроить инструмент, а создать эффективный рабочий процесс для нахождения уязвимостей, которые пропустят другие.