Эффективный и быстрый пентестинг веб-приложений с Burp Suite

Burp Suite – это набор относительно независимых кроссплатформенных приложений, написанных на Java, призванных решать повседневные задачи пентестера. Ядром программы является Burp Proxy, выполняющий функции локального прокси-сервера; остальные компоненты набора – это Spider, Intruder, Repeater, Sequencer, Decoder и Comparer. Все составляющие связаны между собой в единое целое таким образом, что данные могут быть отправлены в любую часть приложения, например из Proxy в Intruder для проведения различных проверок над веб-приложением, из Intruder в Repeater – для более тщательного ручного анализа HTTP-заголовков. Все компоненты заслуживают особого внимания, поэтому хотел бы рассказать о каждом из них.

Burp Suite

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.

Скачать Burp Suite

Join the Conversation

17 Comments

  1. Нет, еще не пробовал, но судя по описанию WebScarab удивительно похож на Burp Suite. Надо попробовать…
    w3af – тоже интересный проект, я так понял это открытая разработка, в которой ты принимаешь участие?

  2. хм… web scarab дает избыточный функционал над burp proxy, так что нет смысла брать очередную поделку на java я думаю.

  3. >Может чего-нить утянем в w3af =)
    теперь понятно =)

    @touzoku

    так что нет смысла брать очередную поделку на java я думаю

    действительно, по неизвестной причине многие локальные прокси, предназначенные для аудита веб-приложений, написаны на Java (в т.ч. Paros), тем не менее поделка слишком пренебрежительно звучит по отношению к разработкам подобного рода.

  4. Ну WebScarab достаточно серьезное приложение, тем не менее все равно поделка, ибо часто глючит и вываливается с эксепшнами. А остальное даже половину скараба не реализует, поэтому и пренебрежительно.

  5. web scarab дает избыточный функционал над burp proxy, так что нет смысла брать очередную поделку на java я думаю

    А остальное даже половину скараба не реализует, поэтому и пренебрежительно

    Я что-то не пойму, для вас поделка это WebScarab или Burp Proxy? Или вообще любые другие аналоги?

  6. Вышла новая версия, думаю можно и о ней рассказать 😉

  7. Новую версию использую уже три месяца, нововведения по сравнению с 1.1 не такие уж и значительные, – в основном был затронут Burp Scanner, но он поставляется только с платной версией программы.

  8. Я что-то не пойму, для вас поделка это WebScarab или Burp Proxy? Или вообще любые другие аналоги?
    WebScarab – достаточно мощная софтина от OWASP, Burp Proxy – поделка. Как я уже сказал скараб перекрывает burp proxy с головой, но тем не менее всё равно глючный и индийский как весь софт на java 🙂

  9. Я чет не догнал – а чем вас не устраивается Web Vulnerability Scanner ? (WVS)

  10. Сравнение WVS с Burp’ом несколько неуместно, так как первый является в первую очередь автоматизированным сканером уязвимостей, а второй направлен на ручное исследование веб-приложений

  11. to touzoku
    Ну ну, любезный, с такими суждениями можно прийти к выводу, что Windows – это платная альтернатива Linuxa для “убогих”, а MsOffice, вместе с OpenOffice неудобный, большой глючный блокнот.
    “Если что то происходит, значит это кому то нужно…”. Мудрость которую мало кто усвоил.

    Имхо:
    Ява была, ява есть, и ява будет.
    A – crossplatform
    B – Бесплатность разработки все IDE Freeware
    C – Open Source
    Все три кита на которых она плавает.

  12. Burp Suite офигенный тул, лучше глючных WebScarabов, но кряка на него нигде нет, а без кряка он практически бесполезен. Надеюсь кряк со временем найдется.

Leave a comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.