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.
Хммм, занимательнная вещь. Надо будет посмотреть. Может чего-нить утянем в w3af =)
По поводу Burp Proxy. А пробывал WebScarab (http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project)?
Нет, еще не пробовал, но судя по описанию WebScarab удивительно похож на Burp Suite. Надо попробовать…
w3af – тоже интересный проект, я так понял это открытая разработка, в которой ты принимаешь участие?
хм… web scarab дает избыточный функционал над burp proxy, так что нет смысла брать очередную поделку на java я думаю.
>Может чего-нить утянем в w3af =)
теперь понятно =)
@touzoku
действительно, по неизвестной причине многие локальные прокси, предназначенные для аудита веб-приложений, написаны на Java (в т.ч. Paros), тем не менее поделка слишком пренебрежительно звучит по отношению к разработкам подобного рода.
Ну WebScarab достаточно серьезное приложение, тем не менее все равно поделка, ибо часто глючит и вываливается с эксепшнами. А остальное даже половину скараба не реализует, поэтому и пренебрежительно.
…
Я что-то не пойму, для вас поделка это WebScarab или Burp Proxy? Или вообще любые другие аналоги?
Вышла новая версия, думаю можно и о ней рассказать 😉
Новую версию использую уже три месяца, нововведения по сравнению с 1.1 не такие уж и значительные, – в основном был затронут Burp Scanner, но он поставляется только с платной версией программы.
Я что-то не пойму, для вас поделка это WebScarab или Burp Proxy? Или вообще любые другие аналоги?
WebScarab – достаточно мощная софтина от OWASP, Burp Proxy – поделка. Как я уже сказал скараб перекрывает burp proxy с головой, но тем не менее всё равно глючный и индийский как весь софт на java 🙂
Я чет не догнал – а чем вас не устраивается Web Vulnerability Scanner ? (WVS)
Сравнение WVS с Burp’ом несколько неуместно, так как первый является в первую очередь автоматизированным сканером уязвимостей, а второй направлен на ручное исследование веб-приложений
to touzoku
Ну ну, любезный, с такими суждениями можно прийти к выводу, что Windows – это платная альтернатива Linuxa для “убогих”, а MsOffice, вместе с OpenOffice неудобный, большой глючный блокнот.
“Если что то происходит, значит это кому то нужно…”. Мудрость которую мало кто усвоил.
Имхо:
Ява была, ява есть, и ява будет.
A – crossplatform
B – Бесплатность разработки все IDE Freeware
C – Open Source
Все три кита на которых она плавает.
Burp Suite офигенный тул, лучше глючных WebScarabов, но кряка на него нигде нет, а без кряка он практически бесполезен. Надеюсь кряк со временем найдется.