Burp Suite – это платформа для выполнения тестирования по безопасности веб-приложений. В этой заметке я поделюсь несколькими приёмами, как использовать данный инструмент более эффективно.



Настройки


Для правильной работы с любым инструментом важно его настроить под себя. В Burp Suite существуют 2 типа настроек:


  • User Options — Настройки относящиеся к самому Burp Suite
  • Project Options — Настройки к тому, что хакаешь

Кодировки


При исследовании русскоязычных ресурсов, часто в ответе от сервера вместо кириллицы могут отображаться кракозябры. Чтобы этого избежать можно установить кодировку UtF-8 и продолжать работу в нормальном режиме. Настройки кодировок находятся в User Options -> Display -> Characters Sets.



Хоткеи


Чтобы действительно ускорить свою работу с Burp Suite стоит попробовать перейти на использование сочетаний клавиш. Можно использовать установленные по умолчанию, но также есть возможность перенастроить "под себя". Для управления хоткеями достаточно перейти в User Options -> Misc -> Hotkeys. Несколько полезных сочетаний:


  • Кодирование\декодирование:
    • Ctrl+(Shift)+U|H|B для “URL|HTML|Base64 (de)code”
  • Навигация по GUI:
    • Ctrl+Shift+T|P|S|I|R — “Переключение между утилитами”
    • Ctrl+I|R|D — "Отправить запрос в утилиту"
  • Burp Repeater:
    • Ctrl+G — "Выполнить запрос в Burp Repeater"

Proxy Interception


Бывало ли у вас такое, что настроив перенаправление траффика в Burp Proxy приложение почему-то не работало, а в истории запросы так и не появлялись? У меня было так практически каждый раз при старте нового проекта. Всё из-за того, что я забывал отключать перехват в прокси. Каждый раз… Чтобы не травмировать свою нервную систему, можно отключить по умолчанию эту полезную функцию. Перейдите в User -> Misc -> Proxy Interseption и выберите опцию "Always Disable".



Приватность


Не смотря на доверие разработчикам из PortSwigger не стоит передавать лишнюю информацию на их сервера. Даже если вы и сами не против "поделиться", то у ваших заказчиков могут быть более строгие правила. Первое, что необходимо сделать — отключить отправку анонимных сообщений, отправляемых PortSwigger. Перейдите по пути User Options -> Misc -> Performance Feedback и запретите отправку.


Если вы используете Burp Collaborator, то стоит поднять свой собственный и использовать его. Такое решение позволит обходить некоторые WAF, настроенных на блокировку burpcollaborator.net и его поддоменов. Для управления Burp Collaborator переходим в Project Options -> Misc -> Burp Collaborator Server



Используйте конфиг по умолчанию


Чтобы не проделывать работу с настройками для каждого проекта, можно создать конфигурационный файл и загружать его при старте нового проекта. Для этого достаточно проделать следующие шаги:


  • Сделайте необходимые изменения
  • Сохраните настройки проекта и пользователя (это будут JSON файлы).
  • Объедините оба файла в один.
  • Обновляйте его по мере необходимости и храните в надежном месте (например, git репозитории).
  • Финальный конфиг будет выглядеть так:

{
    "project_options":{
        // options
    },
    "user_options":{
        // options
    }
}

Отключение плагинов


При запуске Burp Suite можно отключать все плагины. Это значительно может ускорить загрузку, особенно если используется множество дополнений.



Включить необходимые дополнения можно позже, учитывая специфику проекта.


Ограничение по памяти


Burp Suite написан на Java, что часто приводит к большому потреблению памяти, особенно в случае долгих автоматических проверок. Для ограничения потребляемых ресурсов можно воспользоваться следующей командой:


java -jar -Xmx2048M burp.jar

Утилиты


В данном разделе будут советы по работе со встроенными утилитами в Burp Suite. Наиболее интересные из них:


  • Burp Proxy лежит в самом сердце управляемого пользователем рабочего процесса Burp Suite, позволяя вам перехватывать, проверять и модифицировать трафик, движущийся в обоих направлениях между сервером и клиентом.
  • Burp Repeater — инструмент для обработки HTTP-запросов, их редактирования и анализа ответов веб-приложений вручную.
  • Burp Intruder — мощный инструмент для автоматизации специализированных атак против веб-приложений. Это очень гибкий и хорошо настраиваемый инструмент, который может использоваться для выполнения огромного спектра задач, возникающих во время тестирования приложений.

Найти ссылки на хост


Иногда, появляется необходимость найти ссылки на определённый хост. Конечно, можно воспользоваться поиском в истории запросов, но есть более быстрый и эффективный способ. Переходим во вкадку Target -> Site Map, выбираем из списка необходимый хост, правый клик и Engagement tools -> Find reference. В результате, появится список запросов, ссылающихся на интересующий нас хост.



Автозамена


Многие недооценивают полезность функции автозамены в Burp Proxy. Часто её используют для подмены ответов сервера, с целью отключить защитные механизмы в заголовках; замены false на true для повышения привилегированного доступа и т.п. Для меня же наибольшая польза от этого механизма достигается при тестировании мобильных приложений. Очень удобно в самом интерфейсе приложения вводить простые слова, а в результате отправлять сложные выражения. Например, ввести bxss, а отправить полноценный пейлоад BlindXSS. Также, упрощается работа при вводе паролей. Настройки автозамены вы можете найти в Proxy -> Options -> Match and replace.



Переименование вкладок


Burp Suite позволяет именовать вкладки, когда я узнал об этой возможности, то моей радости не было предела. Сделав двойной клик по заголовоку вклади запроса, можно записать полезную информацию, которая поможет вспомнить что к чему спустя какое-то время.



Работает это не только в Burp Repeater, но и в Burp Intruder, что также бывает полезным.


Автопрокрутка


Очень удобной является функция автопрокрутки при поиске в запросах или ответах. Burp будет автоматически перепрыгивать на результат, после отправки запроса, ускоряя вашу работу. Для включения опции после ввода в поисковой строке того, что вы хотите найти, нажмите кнопку "+", чтобы получить доступ к опциям поиска и отметье "Auto-scroll to match when text changes".



Отчёты


При оформлении отчётов гораздо больше информации поместится и симпатичней будут смотреться скриншоты с вертикальным расположением запроса\ответа. Для этого в опциях Burp Repeater отметьте View->Top/bottom split



Целевое сканирование


Вы можете использовать интерфейс Burp Intruder, чтбы сконфигурировать сканирование с использованием Burp Scanner только на необходимые параметры, заголовки и т.п. Для этого, выставите маркеры в нужном вам запросе в интерфейсе Burp Intruder так, как вы это делаете обычно, а затем выберите "Scan defined insertion points" из контекстного меню. В результате будет сэкономлено достаточно времени, т.к. по умолчанию Burp Scanner тестирует все, что доступно в запросе, включая cookies, заголовки, URI, параметры запроса.



Обработка полезной нагрузки на лету


В Burp Intruder можно устанавливать различные обработки полезной нагрузки, до отправки запроса. Установленные правила выполняются последовательно, могут быть включены/отключены, чтобы помочь подебажить в случае каких-то проблем в конфигурации. Правила обработки могут быть полезными во множестве различных ситуациях, где вам нужно сгенерировать необычную нагрузку, или, например, закодировать.


Примеры доступных типов правил:


  • Add prefix / suffix — Добавляет текст до или после нагрузки.
  • Match / replace — Заменяет любую часть в нагрузке, подходящую под регулярное выражение, указанной строкой.
  • Encode / Decode — Кодирует или раскодирует нагрузку различных типов: URL, HTML, Base64, ASCII hex.
  • Hash — Производит операцию хэширования над нагрузкой.
  • Skip if matches regex — Проверяет удовлетворяет ли нагрузка указанному регулярному выражению и если это так, то пропускает нагрузку и переходит к следующей. Это может быть полезным, например, если вам известно, что значение параметра должно иметь минимальную длину и вы хотите пропустить все значения из списка, которые короче данного значения.


Сортировка результатов Intruder


В Burp Intruder можно помечать результаты, содержащие заданные выражения в ответах от сервера. Для каждого выражения Burp добавит столбец с чекбоксами в таблицу с результатами. В результате, можно будет явно увидеть интересные ответы, а при необходимости сгруппировать, кликнув на заголовок столбца.



Использование этой опции становится максимально полезным при анализе больших объемов результатов сканирований и позволяет быстро находить интересующие вас вещи. Например, при тестировании SQL инъекций поиск сообщений содержащих "ODBC", "error" и пр. помогут быстро отыскать уязвимые параметры.