Burp Suite – это набор относительно независимых кроссплатформенных приложений, написанных на Java, призванных решать повседневные задачи пентестера. Ядром программы является Burp Proxy, выполняющий функции локального прокси-сервера; остальные компоненты набора – это Spider, Intruder, Repeater, Sequencer, Decoder и Comparer. Все составляющие связаны между собой в единое целое таким образом, что данные могут быть отправлены в любую часть приложения, например из Proxy в Intruder для проведения различных проверок над веб-приложением, из Intruder в Repeater – для более тщательного ручного анализа HTTP-заголовков. Все компоненты заслуживают особого внимания, поэтому хотел бы рассказать о каждом из них.
Burp Proxy
Burp Proxy предоставляет возможность перехватить пакет в тот момент, когда он уже сформирован барузером, но еще не отправлен на удаленный сервер. Главное его преимущество над Proxomitron заключается в том, что последний осуществляет модификацию HTTP-заголовков на основе заранее заданных правил, что существенно ограничивает свободу действий. Burp Proxy работает по принципу плагина для Firefox Tamper Data: запускаем перехват и получаем возможность редактирования исходящих HTTP-пакетов. Кроме того, Burp Proxy позволяет выборочно перехватывать пакеты, а также изменять заголовки ответа сервера на основе правил, заданных в формате регулярных выражений. В целом, очень гибкий и удобный интрумент.
Burp Spider
Burp Spider – это классический паук, который собирает информацию о существующих директориях и файлах на сервере, обходя найденные на страницах ссылки. В настройках можно указать глубину входа по каждой ссылке, а также различные правила для исключения определенных типов файлов и URL страниц. Burp Spider смотрит в robots.txt, парсит JavaScript на наличие ссылок, обращается к корню каждой найденной папки для получения листинга и распознает формы в HTML.
Burp Intruder
Самым любопытным компонентом, на мой взгляд, является Burp Intruder. Он предназначен для циклического повторения запросов с целью сбора информации о сервере, эксплуатирования SQL-инъекций, поиска XSS-уязвимостей. Сперва во вкладке Target необходимо указать цель испытаний (или же можно отправить, например, из Burp Proxy всю информацию сюда и все поля будут автоматически заполнены). Далее во вкладке Positions необходимо определить параметры, которые будем проверять или изменять. При этом не забываем указать тип атаки – для большинства случаев подходит Sniper, т.е. для каждого отмеченного участка производится подстановка payload’а из списка по очереди. Как только были определены все интересующие участки, можно переходить к настройке атаки и выбору payload’а. Burp Intruder предлагает несколько типов полезной нагрузки, которые способны решить многие задачи, начиная от брутфорса формы авторизации и заканчивая автоматически обнаружением XSS. Приведу пример настройки Burp Intruder для получения списка таблиц из БД посредством SQL-инъекции.
Сперва необходимо перехватить с помощью Burp Proxy запрос, отправленный к веб-приложению с параметром, уязвимого к SQL-инъекцией, затем нужно отправить данные HTTP-пакета в Intruder (Action->Send to Intruder). Теперь нужно отделить участок уязвимого параметра с помощью символа §:
GET /inj.php?id=1+UNION+SELECT+concat(0x3C212D2D,TABLE_NAME,0x2D2D3E),2+
FROM+information_schema.TABLES+WHERE+TABLE_SCHEMA=0x7770+LIMIT+§1§,1/* HTTP/1.1
User-Agent: Opera/9.61 (Windows NT 5.1; U; ru) Presto/2.1.1
Host: localhost
Connection: close
Теперь переходим к вкладке payloads и указываем:
payload: numbers
range from: 1
range to: 100 (т.к. не знаем сколько таблиц в БД)
range step: 1
Остальное оставляем все как есть. Итак, аргумент LIMIT будет увеличиваться на один с каждой итерацией, но нужно также позаботиться об извлечении данных. Для этого переходим к владке Options и в секции grep выбираем вкладку extract. В текстовое поле вводим <!— — (т.е. в concat() это значение 0x3C212D2D), жмем add, в поле stop capturing at указываем — —> (0x2D2D3E) и, наконец, ставим галку около capture text following these expressions. Готово!
Теперь запускаем атаку из главного меню программы (Intruder->Start). Результат можно увидеть на скрине – все найденные таблицы помещены в отдельный столбец:
К сожалению, Burp Intruder, поставляемый в комплекте с Burp Suite, имеет статус Demo-версии и делает задержку на 1 секунду между запросами.
Как уже отмечалось, с помощью Burp Intruder можно реализовать большое количество разнобразных типов атак и описать все возможности в рамках данного обзора не представляется возможным. Более подробно об использовании Burp Intruder читайте в главе XIII книги Web Application Hacker Handbook, а также на сайте разработчиков.
Burp Repeater
Функция данного компонента – ручная отправка HTTP-запросов для детального анализа возвращаемых заголовков. Пакеты очень удобно править, а ответы сервера можно смотреть во встроенном браузере. В целом, очень похоже на программу InetCrack.
Burp Sequencer
Burp Sequencer служит для анализа случайности токенов в HTML-формах, используемых, в основном, в целях защиты от CSRF. На основе загруженных в программу токенов проводятся различные тесты для изучения их степени рандомности. Честно говоря, самый бесполезный компонент из всех.
Burp Decoder
Стандартная утилита для преобразования текстовых строк из одного представления в другое, в частности url, html, base64, ascii hex, hex, octal, binary, gzip. Думаю, в комментариях не нуждается.
Burp Comparer
Инструмент для сопоставления строк: подсвечиваются участки, которые были изменены, добавлены или удалены. У меня программа работала не совсем корректно, лучше использовать специализированные программы.
В целом, Burp Suite меня приятно порадовал, его возможности в сравнении с аналогами поиситине уникальны, чего стоит один Burp Intruder. В декабре появится версия 1.2 и разработчики, надеюсь, предложат еще более продвинутые средства по пентестингу веб-приложений. Огорчает лишь тот факт, что Burp Intruder не бесплатный (версия Professional стоит 100 фунтов стерлингов). Советую также почитать книгу от разработчиков данной утилиты – Web Application Hacker Handbook.
Leave a Reply