megaDED

Сержант
Модератор
Сообщения
34
Реакции
5
Расширение функциональных возможностей Burp Suite

Burp Suite
– фантастический набор инструментов, который поставляется с рядом замечательных функций прямо из коробки. Как упоминалось в предыдущих главах, Intruder – это гибкий инструмент для осуществления полного перебора, Repeater позволяет проверять и точно настраивать атаки, а Decoder упрощает манипулирование данными. Отличительной особенностью Burp является возможность расширения функциональности с помощью расширений, разрабатываемых и поддерживаемых сообществом. PortSwigger, создатель Burp Suite, также поддерживает онлайн-каталог расширений, BApp Store. Доступ к нему можно получить с помощью вкладки Extender в Burp Suite.

BApp Store​

С помощью расширений можно пассивно выполнять проверку на предмет наличия устаревших библиотек, настраивать sqlmap и осуществлять быстрый поиск уязвимостей, связанных с аутентификацией или авторизацией.
Расширения для Burp обычно написаны на языках Java, Python или Ruby. Поскольку Burp является Java-приложением, расширения Java будут работать прямо из коробки. Для расширений, написанных на Python или Ruby, нужно указать Burp Suite на интерфейсы Jython и JRuby. Python и Ruby – очень мощные языки, а некоторые даже скажут, что работать с ними проще, чем с Java. B App Store – это в основном расширения, написанные на Java и Jython, но иногда используется и JRuby.
Например, Additional Scanner Checks – это расширение, написанное на языке Python. Как следует из названия, данное расширение дополняет модуль сканера Burp несколькими дополнительными проверками. Однако, прежде чем мы сможем установить его, Burp предложит нам загрузить Jython. Это означает, что среда Extender Python еще не настроена должным образом, что часто встречается в новых установках Burp Suite.
Можно найти Additional Scanner Checks в списке расширений BApp Store, а в правой части экрана вы увидите кнопку Install серого цвета. Страница BApp Store предоставляет возможность скачать Jython
Процесс настройки Burp для Jython и JRuby прост. Реализации обеих библиотек поставляются в виде отдельных JAR-файлов, которые можно загрузить прямо в Burp.
Jython доступен на странице http://www.jython.org/downloads. html в виде автономного файла в формате JAR.
JRuby доступен на странице http://jruby.org/download в виде полного JAR-файла.

Additional Scanner Checks на странице BApp Store
На вкладке Options (Параметры) модуля Extender можно указать только что загруженные автономные файлы Jython и JRuby.

Конфигурирование сред Jython и JRuby
После соответствующей настройки среды BApp Store должен позволить установить расширение Additional Scanner Checks. После нажатия на кнопку Refresh list (Обновить список) изменения в конфигурации будут приняты, а кнопка Install – активирована.

Кнопка Install активируется после предварительной настройки среды

Нелегальная аутентификация и злоупотребление учетными записями
Одним из самых утомительных тестов безопасности приложений является проверка аутентификации или авторизации. Основные шаги для проверки данного типа уязвимости примерно такие:
1) аутентификация с использованием заведомо исправного аккаунта;
2) захват идентификатора сеанса;
3) сканирование приложения с использованием этого идентификатора сеанса;
4) открытие нового сеанса приложения;
5) аутентификация с помощью отдельного заведомо исправного аккаунта;
6) захват идентификатора сеанса;
7) повтор сканирования с новым идентификатором сеанса:
Проверка на предмет возможности вертикального или горизонтального повышения привилегий;
8) анонимный повтор сканирования без идентификатора сеанса:
Проверка на предмет наличия проблем, связанных с обходом аутентификации.
Делать все это вручную – настоящий кошмар и трата драгоценного времени. К счастью, в BApp Store есть расширение, которое помогает автоматизировать бóльшую часть этих процессов и сообщить нам о любых потенциальных проблемах уже на шаге 3.
Autorize сделает за нас тяжелую работу. Его можно быстро установить через интерфейс Burp Suite.

Autorize на странице BApp Store
Проще говоря, после настройки Autorize будет повторять каждый запрос, который мы отправляем приложению, еще два раза и сравнивать ответ с исходным запросом.
Первый повторный запрос будет содержать идентификатор сеанса второго заведомо исправного аккаунта, а второй повторный запрос будет анонимным. Ответ на исходный запрос должен быть успешным, в то время как два других дадут сбой, предлагая отдельный ответ, возможно, с кодом 403 или, по крайней мере, изменив тело ответа, чтобы сообщить об ошибке авторизации. Autorize рассмотрит оба ответа и выдаст соответствующее предупреждение. Если ответ первого повторного запроса совпадает с ответом исходного запроса, значит, обе учетные записи могут получить доступ к странице. Если это портал администратора и только одна из учетных записей является аккаунтом администратора, мы только что обнаружили серьезную проблему, связанную с авторизацией.
Autorize также поможет найти более серьезные уязвимости со вторым повторным запросом, который удаляет заголовок Cookie, делая его анонимным запросом. Если ответ этого запроса совпадает с ответом оригинала, в приложении возникает проблема, связанная с обходом аутентификации.
Поток запросов Autorize
Новый запрос осуществляется через перехватывающий прокси-сервер.
1. Замените заголовок Cookie другим идентификатором сеанса.
2. Повторите запрос.
Соответствует ли ответ исходному запросу? Внимание!
3. Удалите заголовок Cookie.
4. Повторите запрос.
Соответствует ли ответ исходному запросу? Внимание!
После установки Autorize необходимо настроить соответствующий заголовок Cookie, чтобы он мог выявлять проблемы в приложении, выбранном в качестве объекта атаки. Прежде всего необходимо захватить заголовок Cookie и идентификатор сеанса для пользователя с низкими привилегиями. Это можно сделать, открыв новый сеанс просмотра и посмотрев на ответ сервера. Будем просматривать приложение, используя учетную запись администратора. После входа в систему с учетной записью с низким уровнем привилегий можно получить значение сеанса из любого запроса к приложению.

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0)
Gecko/20100101 Firefox/52.0
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Cookie: PHPSESSID=g10ma5vjh4okjvu7apst81jk04
Upgrade-Insecure-Requests: 1
Неплохо было бы запомнить весь заголовок Cookie, поскольку некоторые приложения используют более одного куки для отслеживания сеанса пользователя.
На вкладке Authorize можно ввести это значение в разделе Configuration (Конфигурация) Также рекомендуется изменить фильтры перехвата Autorize, чтобы они предназначались только для нашего приложения. Браузер может делать сотни запросов к внешним или сторонним приложениям во время обычного сеанса сканирования. Нам не нужно генерировать в три раза больше трафика для посторонних элементов.

Вкладка Autorize и раздел Configuration​

Authorize начнет воспроизведение запросов, как только мы нажмем кнопку Enable.


Панель конфигурации куки в Autorize
После того как мы настроили значение Cookie, можем аутентифицироваться в приложении, используя учетную запись с высоким уровнем привилегий, и просмотреть панель администратора. Все последующие запросы будут проверены с использованием низко привилегированных и анонимных сеансов. Через панель администрирования Autorize удалось обнаружить вертикальное повышение привилегий на странице /admin/submit.php.

Autorize обнаружил проблему
Похоже, что хотя эта страница скрыта от обычных пользователей из-за ошибки 403 в точке входа панели администратора, она доступна напрямую и проверяет только, вошел ли пользователь в систему, а не наличие у него права администратора. Нам не пришлось тщательно отслеживать все сделанные нами запросы, изменять идентификатор сеанса и воспроизводить их. Autorize сделал это за нас, и в результате мы получили интересную уязвимость, которую можно использовать для нелегальной авторизации.
 
  • Like
Реакции: Biba Run