Эффективный и быстрый пентестинг веб-приложений с 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 (depositfiles.com, easy-share.com).

Скачать Burp Suite

Скачать Java Runtime Environment


17 comments:

  1. Pento, 17. November 2008, 23:29

    Хммм, занимательнная вещь. Надо будет посмотреть. Может чего-нить утянем в w3af =)
    По поводу Burp Proxy. А пробывал WebScarab (http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project)?

     
  2. Raz0r, 18. November 2008, 12:27

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

     
  3. touzoku, 20. November 2008, 22:51

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

     
  4. Raz0r, 21. November 2008, 17:45

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

    @touzoku

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

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

     
  5. touzoku, 7. December 2008, 9:23

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

     
  6. Raz0r, 10. December 2008, 21:26

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

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

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

     
  7. Hormold, 11. March 2009, 1:18

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

     
  8. Raz0r, 11. March 2009, 17:05

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

     
  9. touzoku, 31. March 2009, 15:06

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

     
  10. Веля Солнышкин, 1. May 2009, 23:16

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

     
  11. Raz0r, 2. May 2009, 15:42

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

     
  12. DzumoHu4, 15. August 2009, 14:34

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

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

     
  13.  

    […] По сути, FuzzDB – лишь набор текстовых файлов с шаблонами, отсортированных по платформам, типам атак, языкам. Использовать FuzzDB можно где угодно, например в самописном web-сканнере директорий или в профессиональном инструменте для проведения пен-тестов. Рассмотрим применение FuzzDB на практике в Burp Intruder, входящий в состав Burp Suite. […]

     
  14.  

    […] помогают при тестах на проникновение. В Сети лежит хороший обзор на русском языке от Raz0r (правда за 2008 год). В бесплатную […]

     
  15.  

    […] помогают при тестах на проникновение. В Сети лежит хороший обзор на русском языке от Raz0r (правда за 2008 год). В бесплатную […]

     
  16.  

    […] Burp Suite является если не основным то, пожалуй, одним из главных инструментов пентестера. С момента выхода первого релиза Burp приобрел множество новых функций, появилась платная и бесплатная версии. Однако зачастую при проведении пентеста встроенного функционала не хватает, и в этом случае на помощь приходит Burp Extender – набор интерфейсов для расширения возможностей Burp. Сама программа написана на Java, и писать расширения предлагается также на этом языке. Тем не менее усилиями сторонних разработчиков в настоящее время появилось несколько проектов, цель которых – дать возможность создавать расширения и на других языках. Среди них: […]

     
  17. Vasek, 5. September 2012, 19:42

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

     

Write a comment: