Русский
Русский
English
Статистика
Реклама

Burp и его друзья

В этой статье мы расскажем о полезных плагинах для Burp Suite Professional инструмента для анализа веб-приложений. Плагинов много, и, чтобы помочь аудиторам сделать правильный выбор, мы составили список тех, которые сами чаще всего используем в работе.


img


Кратко о Burp Suite



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


Удобство Burp Suite заключается в том, что все утилиты и плагины, которые дополняют его, могут взаимодействовать друг с другом. В настройках браузера вы можете установить в качестве прокси Burp Suite (для сайтов, работающих по HTTPS, также будет нужно установить сгенерированный TLS-сертификат Burp). В этом случае все ваши действия в браузере, а именно отправленные запросы и полученные ответы, будут сохраняться в Burp Proxy. Кроме браузера, на десктопе можно попробовать перенаправить в Burp HTTP-трафик из мобильных приложений, да и вообще любой HTTP-трафик, будь то десктопное приложение или какое-нибудь IoT устройство. HTTP-запросы из истории Proxy можно пересылать в другие инструменты и работать с ними.


Например, вам нужно проверить можно ли устроить bruteforce-атаку на подбор OTP-кода. Для этого вам нужно перехватить запрос на проверку OTP...



и отправить этот запрос в инструмент Intruder.
После этого нам достаточно будет выделить место в HTTP-запросе, которое нужно атаковать, и настроить значения, которые будут применяться, в данном случае у нас перебор чисел от 0000 до 9999.



Либо можно воспользоваться инструментом Repeater для того, чтобы вручную выполнять какие-либо проверки, тесты или атаковать веб-приложение. Например, можно легко проэксплуатировать SQL-инъекцию в случае, если какие-нибудь иные инструменты вроде sqlmap не могут с ней справиться.



Этим инструментарий Burp Suite однако не ограничивается. Приведем список стандартных инструментов Burp Suite из коробки:


  • Proxy прокси-сервер, позволяющий перехватывать весь HTTP- и WebSocket-трафик между браузером и веб-приложением, а также просматривать историю прошедших через него запросов. Кроме того, Proxy имеет ряд настроек, позволяющих перенаправлять трафик или модифицировать его на лету.
  • Scanner инструмент для сканирования веб-приложения на уязвимости. С версии Burp 2.0 также включает crawler для сбора доступных страниц и endpoint в веб-приложении.
  • Intruder инструмент для проведения автоматизированных атак и фаззинга веб-приложений.
  • Repeater инструмент для ручного изменения и повторной отправки конкретных HTTP-запросов, а также для анализа ответов приложения.
  • Sequencer инструмент для автоматизированного анализа энтропии в ответах от сервера. Это могут быть сессионные идентификаторы или токены. Представьте: у вас есть тысяча псевдослучайных токенов, и нужно узнать, есть ли закономерность в их генерации. В этом случае и пригодится Sequencer. Однако на практике этот инструмент бывает полезен очень редко.
  • Infiltrator инструмент, который помогает проводить аудит приложений, добавляя в них хуки для потенциально уязвимых мест. Для его использования необходимо, чтобы разработчик установил генерируемый инструментом файл на машину, где запущено приложение. В работе инструмент применяется крайне редко.
  • Clickbandit инструмент для генерации clickjacking атак. На практике пригождается редко.
  • Decoder инструмент для кодирования и декодирования данных.
  • Comparer работает почти как diff, поможет найти различия между двумя большими запросами.
  • Collaborator внешний сервер, который позволяет проверить различные blind-вектора, когда нужен отстук на какой-то публично доступный IP-адрес в интернете.
  • Extender волшебная палочка для добавления расширений.

Также стоит отметить, что Burp поддерживает работу с WebSocket, позволяя так же, как и при работе с протоколом HTTP, перехватывать и модифицировать запросы, передаваемые через WebSocket. А в новых версиях добавили функциональность, аналогичную Repeater, только для WebSocket.


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


Param-miner


Про param-miner мы упоминали, когда обсуждали Arjun. Этот инструмент аналогичен Arjun, но работает в Burp и, кроме параметров, может находить еще скрытые заголовки и Cookie. Изначально разрабатывался как средство для поиска скрытых параметров, которые могут быть полезны при поиске уязвимостей типа Web Cache Poisoning.


+


  • Плагин помогает находить скрытые GET/POST-параметры, параметры JSON-запроса, HTTP-заголовки, Cookie.
  • Позволяет запускать как анализ нескольких запросов, так и всего трафика.

-


  • Требует внимания и настройки, чтобы избегать проблем с производительностью и случайным DoS на веб-приложения.
  • В случае если вы решите остановить запущенный процесс поиска параметров, вам придется удалить или отключить плагин иначе никак.
  • Крайне неудобный UI: настройка плагина производится в отдельном окне, а результаты отображаются только в списке всех уязвимостей и могут легко затеряться или забыться.

Stepper


Stepper улучшенная версия Repeater, позволяющая отправлять последовательности запросов. При этом можно использовать параметры из предыдущих запросов и ответов, чтобы отправить запрос, следующий в цепочке. Кроме того, полученные параметры можно использовать также и в обычном Repeater.


Самый простой способ использования следующий. Допустим, для каждого нового запроса вам нужно получить новый CSRF-токен. Делать это вручную крайне неудобно. Вместо этого вы можете сделать последовательность в Stepper, которая будет сначала получать CSRF-токен, после чего выполнять нужный вам запрос. Для этого вам нужно будет в первом запросе указать, что является параметром, и добавить его как переменную (csrf_token в примере).



А затем в следующем запросе указать, куда этот параметр подставить, используя название переменной ($VAR:csrf_token$). В итоге Stepper сможет выполнить корректную последовательность запросов. Результаты подстановки можно будет увидеть во вкладке Stepper Replacements.



Кроме того, этот параметр можно использовать в другом инструменте, например в Repeater, указав в запросе переменную как $VAR:Test:csrf_token$:



Используя возможности Stepper, можно легко заскриптовать такие действия, как многоступенчатая покупка или сложный процесс аутентификации, что значительно упрощает процесс тестирования сложной логики в веб-приложениях.


+


  • Существует возможность создавать произвольные последовательности HTTP-запросов.
  • Для извлечения интересующих параметров из запросов и ответов используются регулярные выражения, что дает определенную гибкость в конфигурировании последовательности
  • Есть глобальные переменные, которые можно использовать в Repeater.

-


  • Отсутствует режим для фаззинга последовательности запросов, аналогичный Intruder.

Turbo intruder


Turbo Intruder более быстрый аналог Intruder, оснащенный скриптовым движком для отправки большого количества HTTP-запросов и анализа результатов. Полезен, если ВАМ НУЖНА СКОРОСТЬ! Очень эффективен при поиске уязвимостей, связанных с "состоянием гонки" (Race Condition), поскольку имеет внутри небольшой скриптовый движок на Python, в котором есть специальные функции для тестирования Race Condition (например, одномоментная отправка запросов). Возможности расширения позволяют заскриптовать различную логику, например многоступенчатую аутентификацию.
Пример простой bruteforce-атаки с использованием Turbo Intruder:



Для сравнения устроим с помощью Intruder и Turbo Intruder bruteforce-атаку для подбора OTP, состоящего из 4-х цифр от 0000 до 9999. Будем использовать 50 потоков. В нашем эксперименте Turbo Intruder справился всего за 18 секунд, в то время как Intruder за 18 секунд совершил лишь примерно 1000 запросов!


+


  • Быстрый. По словам разработчиков, опережает даже скрипты на Go.
  • Может быть запущен автономно через командную строку.
  • Скриптовый движок на Python позволяет обеспечить гибкость, а значит может работать с многоступенчатыми последовательностями атак и отправлять запросы любого вида (может быть полезно при попытке эксплуатации атак HTTP Request Smuggling).
  • Собственный стек HTTP позволяет отправлять запросы, которые нарушают корректную работу некоторых библиотек, а также позволяет добиться хорошей скорости отправки запросов.
  • Удобная система фильтров анализа отправленных запросов и полученных ответов.
  • Существуют различные шаблоны скриптов.

-


  • Сложнее использовать, чем стандартный Intruder
  • Написание скриптов в окне без подсветки синтаксиса и мощи современных IDE довольно неудобно, кроме того эти скрипты сложно отлаживать.
  • Интерфейс в отдельном от Burp окне.
  • По словам разработчиков, сетевой стек не так надежен, как ядро Burp.
  • Может стать причиной DoS, поэтому рекомендуется отслеживать производительность приложений во время атак.

Freddy


Freddy плагин, который позволяет проверить уязвимости, связанные с Java и .NET десериализацией в веб-приложениях. Может работать в нескольких режимах, а также добавляет дополнительные проверки при использовании стандартного Burp-сканирования. Имеет под капотом довольно большую библиотеку различных эксплоитов и проверок для десериализации.


Примеры уязвимостей, которые может обнаруживать Freddy:



+


  • Пассивный режим сканирования может обнаруживать использование потенциально опасных библиотек сериализации и API-интерфейсов, анализируя сигнатуры в HTTP-запросах и HTTP-ответы для поиска исключений, выдаваемые целевыми библиотеками.
  • Активный режим сканирования добавляет проверки в стандартный Burp Scanner, для обнаружения уязвимостей используются различные методы.
  • Добавляет в Intruder словарь с различными проверками для поиска баг десериализации.

Backslash Powered Scanner


Backslash Scanner еще один плагин, который неплохо дополняет стандартные проверки Active Scanner. Внутри плагина используются специальные техники, позволяющие обнаружить нестандартное поведение веб-приложений при обработке запросов с различными последовательностями спецсимволов. Это бывает очень полезно в случае, если на стороне веб-приложения используется фильтрация/WAF или сама уязвимость нетривиальная и сложно эксплуатируемая. В этом случае Backslash Scanner укажет вам на те места в запросе, которые требуют пристального внимания, что будет хорошим стартом для анализа уязвимости.


Пример репорта Backslash Scanner:



+


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

-


  • Может давать false-positive и потому требует некоторой настройки для конкретных веб-приложений.

Active Scan ++


Active Scan ++ также дополняет стандартный сканер Burp Suite некоторыми проверками, которые не входят в стандартный комплект поставки Burp.


+


  • Не требует никаких дополнительных настроек.
  • Периодически обновляется, добавляются новые техники, основанные на новых исследованиях

J2EEScan


J2EEScan плагин, заточенный для атак на J2EE (Java 2 Enterprise Edition) приложения. "Под капотом" имеет большое количество проверок, связанных с Java-приложениям, в том числе проверки на известные уязвимости вроде Apache Struts. Проверки также добавляются в стандартный Burp Scanner. На практике этот сканер далеко не часто что-либо находит, но иметь его под рукой точно стоит.



+


  • Не требует никаких дополнительных настроек.

-


  • Плагин давно не обновлялся.

Upload Scanner


Upload Scanner еще один плагин для дополнения проверок Active Scanner. Поможет проверить точки загрузки файлов на такие известные уязвимости, как ImageTragic, инъекции PHP в метадату изображения, загрузку файла htaccess и т.д.


+


  • Имеет гибкие настройки, позволяющие указать форматы файлов, используемые модули, что позволяет уменьшить количество отправляемых плагинов запросов.
  • Кроме проверки уязвимостей, связанных с обработкой изображений, плагин умеет искать Code Injection, XSS, обход CSP и т.д.

Error Message Checks


Error Message Checks плагин, который пассивно обнаруживает различные stacktrace и вывод ошибок в веб-приложении, которые могут появиться при сканировании или crawling'е. Это очень полезно, поскольку не все сканеры могут обнаружить сообщения об ошибках сервера и оповестить о них, потому это часто остается незамеченным для аудитора, который смотрит на приложение со стороны пользователя.


+


  • Позволяет добавлять собственные сигнатуры ошибок
  • Позволяет выбирать, для каких инструментов будет проводиться поиск.

Decoder Improved


Decoder Improved по сути, улучшенный стандартный Decoder. Встроенный Decoder в Burp не так уж и хорош и имеет свои недостатки: в нём нет вкладок, неудобно использовать Hex-редактор, к тому же имеет довольно скудное количество возможных форматов данных. С этими проблемами и помогает справится Decoder Improved.



+


  • Поддерживает всё, что есть в Decoder, а также позволяет использовать алгоритмы сжатия (Gzip, Zlib), хешировать данные, а также меняет систему счисления (от base 2 до base 32).
  • Поддерживает функциональность вкладок.
  • Имеет улучшенный Hex-редактор.
  • Предлагает функциональность регулярных выражений, что позволяет в процессе кодирования/декодирования легко подменять данные.
  • Поддерживает режим замены только спецсимволов HTML/URL, в то время как буквенно-цифровые символы остаются без изменений

Hackvertor


Hackvertor плагин, который также поможет преобразовать данные в запросах и ответах. Только для этого не придется переключаться между вкладками. При работе с ним в Repeater или Intruder появляется возможность оборачивать пейлоады в специальные теги, с помощью которых задаются правила кодирования или декодирования данных. А все преобразования происходят на лету во время отправки запроса. А еще у него есть форк, который работает с pareq, который пригодится при тестировании 3D Secure, от нашего коллеги web_rock.



+


  • Позволяет кодировать и декодировать данные на лету.
  • "Под капотом" содержится огромное количество различных правил преобразования, которые также можно сочетать друг с другом.
  • Шаблоны XSS-пейлоадов из коробки.
  • Возможность создания своих правил.
  • Возможность использования прямо из Repeater или Intruder.

Logger++


Logger++ плагин, главная задача которого тщательно логировать все запросы, происходящие внутри Burp Suite. Как те, что просто летят из браузера, так и те, что генерируются плагинами и сканером. Плагин устраняет основной недостаток встроенного Proxy History логирование запросов только из браузера и отсутствие прочих запросов из недр Burp, например запросов конкретного плагина, запросов из других инструментов (например, Repeater) или сканера в текущий момент. Плагин поддерживает фильтрацию логов. Так, вы можете найти все POST-запросы без CSRF-токена. Для этого нужно, побродив по ресурсу, отфильтровать историю запросов по методу запроса и интересующему параметру.



+


  • Логирование всех запросов из инструментов и плагинов.
  • Наличие фильтрации для быстрого поиска по логу запросов.
  • Конфигурация плагина позволяет выбирать необходимые для логирования инструменты.
  • Существует возможность импортировать запросы из OWASP ZAP, Proxy History и WStalker.
  • Существует возможность экспорта логов в формате JSON и CSV.

-


  • Не очень интуитивные фильтры, которые используются для поиска по истории запросов.
  • Может влиять на производительность Burp, потому что без дополнительных настроек логирует все.

HTTP Mock


HTTP Mock плагин, который будет полезен, если вам надо подменять не просто кусочек ответа (тогда вам поможет Match&Replace в настройках Proxy Intercept), а целиком весь ответ для определенных URL.



+


  • Прост в обращении просто добавить URL (поиск будет происходить с помощью регулярных выражений) и ответ, который должен имитироваться.
  • Еще есть режимы чтения из файла и редирект на другой URL

Request highlighter


Request highlighter плагин для подсветки HTTP-запросов на основе содержимого заголовков. Удобно для выделения уникальных Cookies, хостов, токенов аутентификации, пользовательских заголовков. С помощью плагина во вкладке Proxy History можно помечать запросы, относящиеся к различным сессиям, хостам, браузерам или устройствам. Данная функциональность может быть очень полезна, если нужно протестировать сайт с нескольких браузеров с разными пользовательскими сессиями плагин будет подсвечивать запросы соответствующими цветами.


+


  • Удобная подсветка.

-


  • Поиск и выделение осуществляется только по заголовкам запроса создать выделения на основе заголовков ответа не удастся.

Autorize


Autorize плагин для проверки уязвимостей, связанных с разграничением прав доступа в веб-приложении. Удобен и прост в работе. По большей части всё, что нужно, это просто указать, где в запросе места, по которым определяется сессия пользователя, и подставить нужные значения. Далее плагин будет повторять все запросы, которые вы делаете в браузер, но уже с другими сессионными идентификаторами, что позволяет очень быстро проверить IDORы в приложении.


+


  • Прост в настройке и использовании.
  • Существует подсветка для маркировки успешных и неудачных попыток обхода ролевой модели, а также для ответов, в которых не удалось определить возможность обхода разграничения прав доступа.

HTTP Request Smuggler


HTTP Request Smuggler плагин для проверки недавно заново открытых атак типа HTTP Request Smuggling. Несмотря на то, что стандартный сканер Burp Suite также выполняет проверки на данную уязвимость. Этот плагин обновляется чаще, и его можно запускать отдельно от остального сканирования, что бывает удобно, если нужно проверить только эту уязвимость.


PHP Object Injection Check / PHP Object Injection Slinger


PHP Object Injection Check и PHP Object Injection Slinger плагины, которые позволяют проверить уязвимости в десериализации PHP-объектов. Первый просто добавляет несколько проверок в стандартный Burp Scanner, а второй представляет собой отдельный сканер, в который отдельно нужно добавлять запросы. PHP Object Injection Slinger содержит в себе множество различных проверок из PHPGGC инструмента для создания payloadов для десериализации в PHP.


CSP Auditor


CSP Auditor плагин, который помогает обнаружить слабости в конфигурации CSP. Кроме того, он парсит CSP из ответа сервера и отображает их в более удобном для чтения и анализа виде.



+


  • Удобный вид для чтения CSP.

-


  • Редко обновляется.

Заключение


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

Источник: habr.com
К списку статей
Опубликовано: 25.11.2020 10:14:05
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании digital security

Информационная безопасность

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru