Что такое burp suite
Burp Suite – это мультитул для проведения аудита безопасности веб-приложений. Содержит инструменты для составления карты веб-приложения, поиска файлов и папок, модификации запросов, фаззинга, подбора паролей и многое другое. Также существует магазин дополнений BApp store, содержащий дополнительные расширения, увеличивающие функционал приложения. Стоит отметить и появление в последнем релизе мобильного помощника для исследования безопасности мобильных приложений — MobileAssistant для платформы iOS.
Burp Suite — это интегрированная платформа, предназначенная для проведения аудита веб-приложения, как в ручном, так и в автоматических режимах. Содержит интуитивно понятный интерфейс со специально спроектированными табами, позволяющими улучшить и ускорить процесс атаки. Сам инструмент представляет из себя проксирующий механизм, перехватывающий и обрабатывающий все поступающие от браузера запросы. Имеется возможность установки сертификата burp для анализа https соединений.
Если посмотреть статистику и репорты Bug Bounty программ — практически везде на скриншотах можно встретить использование этого инструмента. На ряду с OWASP ZAP это самый популярный набор утилит для тестирования веб-приложений.
На изображении использование Burp Scanner для анализа Damn Vulnerable Web Application (DVWA).
Существуют две версии Burp Suite: Professional и Free.
Хотя отличия по функционалу довольно существенны — Free версия является полноценным инструментом тестирования. Одно из главных отличий — отсутствие сканера в бесплатной версии и ограничение количества запросов за единицу времени. Также, в бесплатной версии отсутствуют встроенные пейлоады для интрудера, но вполне можно использовать и внешние, например: github.com/1N3/IntruderPayloads. Есть ограничения и по иcпользованию дополнений из BApp store. Существенным минусом также является отсутствие Burp Collaborator в бесплатной версии (использование внешней службы для выявления уязвимостей).
Состав
Основной функционал основан на следующих модулях:
Intruder
Одна из основных утилит для тестирования это Burp Intruder. Принцип его работы заключается в следующем: он обрабатывает каждый HTTP-запрос (называемый «базовым запросом»), изменяя параметры различными способами, выдавая каждую измененную версию запроса и анализируя ответы приложения для идентификации интересных функций или поведения веб-приложения.
Для каждой атаки существует возможность указать набор полезных нагрузок (пейлоадов) и их позиции в базовом запросе. Доступны многочисленные методы создания полезных нагрузок (в том числе простые списки строк, чисел, дат, брутфорс, битфлиппинг и многие другие). Для анализа результатов и выявления интересных вопросов для дальнейшего изучения доступны различные инструменты.
На изображении использование Burp Intruder — установка значений пейлоадов для подбора пароля.
Burp Intruder обладает очень гибкой системой настроек, благодаря чему может быть использован для автоматизации множества видов атак. Вы можете использовать его и для выполнения иных задач, например, подбора пользовательских идентификаторов, сбора важной информации или фаззинга.
Типы возможных атак зависят от особенностей конкретного приложения и могут включать: проверку на наличие SQL-инъекций, XSS, переполнение буфера, обход директории; bruteforce-атаки по различным схемам аутентификации, перебор значений, манипуляции с содержимым параметров; поиск скрытого содержимого и функционала, вычисление идентификаторов сессий и их перехвата, сбор данных, реализация DoS-атак связанных с особенностями веб-приложения.
На изображении использование Burp Intruder для выявления sql-инъекций — выбор пейлоадов.
Burp Intruder содержит (в Pro версии) множество заранее подобранных пейлоадов (строк, позволяющих выявить наличие уязвимостей). Кроме того, он содержит большое количество утилит для динамической генерации векторов атак, подходящих под конкретное приложение. Также в него могут быть загружены дополнительные пейлоды (например имена пользователей или пароли), либо специфичные фаззинг-запросы.
Основу работы каждой атаки составляет отсылка модифицированных HTTP-запросов. Их содержимое генерируется на основе первоначального запроса и установленными пейлоад-позициями. Результатом работы будет таблица с различными данными (статус, длина ответа и т.д.)
На изображении использование Burp Intruder для выявления sql-инъекций — атака.
Burp Intruder поддерживает следующие виды атак:
MobileAssistant
Burp Suite Mobile Assistant — это инструмент для облегчения тестирования приложений iOS с Burp Suite.
Он может изменять общесистемные параметры прокси-сервера устройств iOS, чтобы трафик HTTP(S) мог быть легко перенаправлен в Burp для анализа. Также он способен использовать SSL pinning — внедрение своего сертификата. Использовать мобильного помощника можно на джейлбрекнутых iOS устройствах, начиная от 8 версии iOS и до 10 (хотя на ней и не гарантируется стабильная работа). Для установки нужна Cydia и полноценный Burp на хост системе.
Появление данного инструмента значительно облегчит выявление уязвимостей OWASP Mobile Top 10.
Заключение
Burp Suite заслуженно является одним из популярнейших инструментов пентестеров по всему миру благодаря гибким возможностям, способам комбинировать ручные и автоматизированные методы анализа при проведении тестирования безопасности веб-приложений.
Примечание: как и любое программное обеспечение для тестирования безопасности, Burp Suite содержит функции, которые могут повредить веб-приложение. Тестирование безопасности по своей сути предполагает взаимодействие с веб-приложением нестандартными способами, которые могут вызвать проблемы у некоторых веб-приложений. Необходимо проявлять должную осторожность при использовании Burp Suite, создавать резервные копии перед проведением тестирования и не использовать Burp Suite против любых систем для которых вами не получено разрешение владельца ресурса.
Burp и его друзья
В этой статье мы расскажем о полезных плагинах для Burp Suite Professional — инструмента для анализа веб-приложений. Плагинов много, и, чтобы помочь аудиторам сделать правильный выбор, мы составили список тех, которые сами чаще всего используем в работе.
Кратко о 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 “из коробки”:
Также стоит отметить, что Burp поддерживает работу с WebSocket, позволяя так же, как и при работе с протоколом HTTP, перехватывать и модифицировать запросы, передаваемые через WebSocket. А в новых версиях добавили функциональность, аналогичную Repeater, только для WebSocket.
Подробно останавливаться на каждом элементе Burp Suite мы не будем, а перейдем скорее к самому интересному — полезным дополнениям и расширениям.
Param-miner
Про param-miner мы упоминали, когда обсуждали Arjun. Этот инструмент аналогичен Arjun, но работает в Burp и, кроме параметров, может находить еще скрытые заголовки и Cookie. Изначально разрабатывался как средство для поиска скрытых параметров, которые могут быть полезны при поиске уязвимостей типа Web Cache Poisoning.
Stepper
Stepper — улучшенная версия Repeater, позволяющая отправлять последовательности запросов. При этом можно использовать параметры из предыдущих запросов и ответов, чтобы отправить запрос, следующий в цепочке. Кроме того, полученные параметры можно использовать также и в обычном Repeater.
Самый простой способ использования следующий. Допустим, для каждого нового запроса вам нужно получить новый CSRF-токен. Делать это вручную крайне неудобно. Вместо этого вы можете сделать последовательность в Stepper, которая будет сначала получать CSRF-токен, после чего выполнять нужный вам запрос. Для этого вам нужно будет в первом запросе указать, что является параметром, и добавить его как переменную (csrf_token в примере).
А затем в следующем запросе указать, куда этот параметр подставить, используя название переменной ($VAR:csrf_token$). В итоге Stepper сможет выполнить корректную последовательность запросов. Результаты подстановки можно будет увидеть во вкладке Stepper Replacements.
Используя возможности Stepper, можно легко заскриптовать такие действия, как многоступенчатая покупка или сложный процесс аутентификации, что значительно упрощает процесс тестирования сложной логики в веб-приложениях.
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 запросов!
Freddy
Примеры уязвимостей, которые может обнаруживать Freddy:
Backslash Powered Scanner
Backslash Scanner — еще один плагин, который неплохо дополняет стандартные проверки Active Scanner. Внутри плагина используются специальные техники, позволяющие обнаружить нестандартное поведение веб-приложений при обработке запросов с различными последовательностями спецсимволов. Это бывает очень полезно в случае, если на стороне веб-приложения используется фильтрация/WAF или сама уязвимость нетривиальная и сложно эксплуатируемая. В этом случае Backslash Scanner укажет вам на те места в запросе, которые требуют пристального внимания, что будет хорошим стартом для анализа уязвимости.
Пример репорта Backslash Scanner:
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 и т.д.
Error Message Checks
Error Message Checks — плагин, который пассивно обнаруживает различные stacktrace и вывод ошибок в веб-приложении, которые могут появиться при сканировании или crawling’е. Это очень полезно, поскольку не все сканеры могут обнаружить сообщения об ошибках сервера и оповестить о них, потому это часто остается незамеченным для аудитора, который смотрит на приложение со стороны пользователя.
Decoder Improved
Decoder Improved — по сути, улучшенный стандартный Decoder. Встроенный Decoder в Burp не так уж и хорош и имеет свои недостатки: в нём нет вкладок, неудобно использовать Hex-редактор, к тому же имеет довольно скудное количество возможных форматов данных. С этими проблемами и помогает справится Decoder Improved.
Hackvertor
Hackvertor — плагин, который также поможет преобразовать данные в запросах и ответах. Только для этого не придется переключаться между вкладками. При работе с ним в Repeater или Intruder появляется возможность оборачивать пейлоады в специальные теги, с помощью которых задаются правила кодирования или декодирования данных. А все преобразования происходят “на лету” во время отправки запроса. А еще у него есть форк, который работает с pareq. Он пригодится при тестировании 3D Secure от нашего коллеги web_rock.
Logger++
Logger++ плагин, главная задача которого — тщательно логировать все запросы, происходящие внутри Burp Suite. Как те, что просто “летят” из браузера, так и те, что генерируются плагинами и сканером. Плагин устраняет основной недостаток встроенного Proxy History — логирование запросов только из браузера и отсутствие прочих запросов из “недр” Burp, например запросов конкретного плагина, запросов из других инструментов (например, Repeater) или сканера в текущий момент. Плагин поддерживает фильтрацию логов. Так, вы можете найти все POST-запросы без CSRF-токена. Для этого нужно, побродив по ресурсу, отфильтровать историю запросов по методу запроса и интересующему параметру.
HTTP Mock
HTTP Mock — плагин, который будет полезен, если вам надо подменять не просто кусочек ответа (тогда вам поможет Match&Replace в настройках Proxy Intercept), а целиком весь ответ для определенных 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 из ответа сервера и отображает их в более удобном для чтения и анализа виде.
Заключение
Все перечисленные плагины используются нами в работе и помогают облегчить поиск, обнаружение и эксплуатацию уязвимостей. А это в будущем помогает сделать приложение и его использование безопаснее.
Burp Suite Tips
Burp Suite – это платформа для выполнения тестирования по безопасности веб-приложений. В этой заметке я поделюсь несколькими приёмами, как использовать данный инструмент более эффективно.
Настройки
Для правильной работы с любым инструментом важно его настроить под себя. В Burp Suite существуют 2 типа настроек:
Кодировки
Хоткеи
Proxy Interception
Приватность
Используйте конфиг по умолчанию
Чтобы не проделывать работу с настройками для каждого проекта, можно создать конфигурационный файл и загружать его при старте нового проекта. Для этого достаточно проделать следующие шаги:
Отключение плагинов
При запуске Burp Suite можно отключать все плагины. Это значительно может ускорить загрузку, особенно если используется множество дополнений.
Включить необходимые дополнения можно позже, учитывая специфику проекта.
Ограничение по памяти
Burp Suite написан на Java, что часто приводит к большому потреблению памяти, особенно в случае долгих автоматических проверок. Для ограничения потребляемых ресурсов можно воспользоваться следующей командой:
Утилиты
В данном разделе будут советы по работе со встроенными утилитами в Burp Suite. Наиболее интересные из них:
Найти ссылки на хост
Автозамена
Переименование вкладок
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 можно устанавливать различные обработки полезной нагрузки, до отправки запроса. Установленные правила выполняются последовательно, могут быть включены/отключены, чтобы помочь подебажить в случае каких-то проблем в конфигурации. Правила обработки могут быть полезными во множестве различных ситуациях, где вам нужно сгенерировать необычную нагрузку, или, например, закодировать.
Примеры доступных типов правил:
Сортировка результатов Intruder
В Burp Intruder можно помечать результаты, содержащие заданные выражения в ответах от сервера. Для каждого выражения Burp добавит столбец с чекбоксами в таблицу с результатами. В результате, можно будет явно увидеть интересные ответы, а при необходимости сгруппировать, кликнув на заголовок столбца.
Использование этой опции становится максимально полезным при анализе больших объемов результатов сканирований и позволяет быстро находить интересующие вас вещи. Например, при тестировании SQL инъекций поиск сообщений содержащих «ODBC», «error» и пр. помогут быстро отыскать уязвимые параметры.
Как пользоваться Burp Suite
Интерфейс Burp Suite интуитивно понятный, а среди инструментов есть прокси, паук, сканер, декодер, репитер, анализатор последовательностей и многое другое. В этой статье мы рассмотрим как пользоваться Burp Suite, основные возможности программы, а также как ее установить и настроить.
Установка Burp Suite
Вы можете загрузить программу из официального сайта. Для этого нажмите ссылку «Get Burp», затем выберите версию «Free»:
На следующем шаге вы можете выбрать версию в виде скрипта для Linux или же просто Jar файл, который можно запускать в любой операционной системе.
Теперь вы знаете как установить Burp Suite.
Запуск Burp Suite
Для запуска программы вам понадобится установленная Java машина. Откройте командную строку в вашей системе:
Затем наберите такую команду:
Дальше идет первоначальная настройка программы. В первом окне выберите «Temponary project»:
Затем выберите «Use Burp defaults»:
Настройка burp suite завершена.
Как пользоваться Burp Suite
В набор инструментов BurpSuite входят такие программы, дальше мы кратко рассмотрим как пользоваться каждым из них:
Чаще всего Burp Suite используется в качестве прокси, именно с него мы и начнем.
1. Настройка прокси
Когда вы пропускаете запросы к сайтам через прокси Burp Suite, то программа позволяет вам редактировать на лету любой из запросов или ответов, вы можете отслеживать все передаваемые заголовки и многое другое. Когда вы запускаете программу, прокси уже запущен, осталось только настроить браузер для работы с ним. Например, для Chrome, откройте «Настройки», затем «Дополнительно», а потом «Настроить прокси сервер»:
Дальше вам нужно указать адрес прокси localhost, а порт 8080:
Данная настройка будет работать только для не SSL сайтов. Для обработки HTTPS вам понадобится импортировать сертификат в браузер, а это уже выходит за рамки данной статьи. Теперь откройте любую ссылку в браузере, например, http://compizomania.blogspot.com/.
Страница не откроется, а на вкладке «Proxy», «Intercept» вы увидите запрос, отправленный браузером. Его можно отредактировать:
Если не сработало, убедитесь, что включена опция «Intercept is on». Дальше у вас есть три кнопки
Здесь мы говорим, что хотим перехватить ответ на этот запрос, далее нажмите «Forward»:
Затем вы увидите перехваченный ответ, его тоже можно редактировать, пока он не был отправлен в браузер, например, заменим слово «Главная» на losst.ru:
Для этого чтобы найти нужный участок текста, можно пользоваться полем поиска внизу страницы.
Дальше нажмите «Forward». Вам нужно будет нажать эту кнопку несколько раз поскольку страница будет пытаться загрузить много нужных ей ресурсов. Или же вы можете установить флажок «Intercept off» чтобы страница загрузилась сама без запросов.
Все перехваченные запросы можно видеть на вкладке «HTTP history»:
Отсюда их можно отправить в один из инструментов. Прокси может намного больше. Здесь есть автоматическая замена. Перейдите на вкладку «Options» и найдите «Match & Replace»:
После сохранения правила, нужно поставить напротив него галочку, чтобы его активировать:
Теперь все вхождения указанного слова будут заменяться в получаемых ответах. Только не забудьте про кэш браузера и ответ 304 Not Modified.
2. Использование Intruder
Осталось только нажать на ссылке правой кнопкой и выбрать «Send to Intruder». Затем запрос появится там, где нужно:
Еще, на этой же вкладке нужно выбрать тип атаки. Доступны такие варианты:
В нашем примере мы будем использовать Sniper. Осталось перейти на вкладку «Payloads» и установить варианты нагрузки, которые мы будем перебирать. Здесь выберите тип атаки «Simply List»:
А затем с помощью кнопки «Add» добавьте несколько пунктов. Осталось нажать кнопку «Start Attack» чтобы начать проверку:
Атака откроется в новом окне, здесь вы сможете увидеть результат, в таблице сразу выводится статус код и размер ответа. Далее вы можете более подробно посмотреть ответ для интересующих вас запросов на вкладке «Response»:
Во всех вариантах мы получили ответ 400, неверный запрос, значит либо сайт хорошо защищен, либо просто я не там искал.
3. Использование Repeater
Того что мы рассмотрели уже достаточно чтобы знать как пользоваться Burp Suite на уровне новичка. Но мы рассмотрим еще один инструмент, который применяется для исследования одного запроса. Это Repeater. Чтобы добавить URL, вам нужно опять найти ее на вкладке «Proxy», а потом нажать «Send to Repeater»:
Дальше, на вкладке «Repeater» перед вами появится нужный запрос:
Настройте нужные параметры или измените необходимым образом ссылку и нажмите «Go» чтобы выполнять запрос. Так вам будет проще понять как правильно сделать перед тем, как переходить к массовым запросам в Intruder.
Выводы
В этой статье представлена небольшая инструкция Burp Suite, которая поможет вам освоить программу и проверять свои проекты на наличие проблем с безопасностью. Но не используйте программу в противозаконных целях! Если у вас остались вопросы, спрашивайте в комментариях!