Vander
Команда форума
- 10.11.2019
- 495
- 1 158
Приветствую всех гостей и постояльцев форума Protey!
Продолжим знакомство с инструментом для проведения тестирования на проникновение, многим знакомым как – Burp Suite.
Список публикаций цикла:
- [0] Burp Suite. Тестирование web-приложений на проникновение
- [1] Burp Suite. Знакомство с основным инструментарием
- [2] Burp Suite. Атаки с помощью Intruder
- [3] Burp Suite. Установление доверия по HTTPS
- [4] Burp Suite. Настройка параметров проекта
- [5] Burp Suite. Sniper, Intruder - Практика и закрепление
В этой части цикла, рассмотрим работу с Spider, в версии Burp Suite 2.0 Professional.
В этой версии, привычной для всех вкладки Spider нет, поэтому будем разбираться, как его использовать с учетом привнесённых разработчиками обновлений.
Burp Scanner - это инструмент для автоматического сканирования веб-сайтов, обнаружения контента и аудита на наличие уязвимостей.
Работа по сканированию состоит из двух основных этапов:
Сканирование контента (Crawling) - включает навигацию по приложению, переход по ссылкам, отправку форм и вход в систему, где это необходимо, для каталогизации контента приложения и путей навигации в нем.
Аудит на наличие уязвимостей - это включает анализ трафика и поведения приложения для выявления уязвимостей и других проблем. В зависимости от конфигурации сканирования может потребоваться отправка большого количества запросов в приложение.
В этой части мы разберём сканирование контента – Crawling. В следующей статье рассмотрим Аудит уязвимостей.
Crawling
Основной подход.
Сканер Burp перемещается по целевому приложению так же, как пользователь в браузере, щелкая ссылки и отправляя входные данные. Он строит карту содержимого и функциональности приложения в виде схемы, представляющей различные локации в приложении и ссылки между ними:
Сканер никогда не «перепрыгивает» на ожидающую ссылку и не посещает ее вне контекста. Вместо этого он либо перемещается прямо из своего текущего местоположения, либо возвращается в исходное местоположение и перемещается оттуда. Это максимально точно, имитирует действия пользователя в браузере:
- Создание отпечатков ссылок на уже посещенные места, чтобы избежать их избыточного посещения;
- Проверка в порядке убывания приоритетов при обнаружении нового контента
- Имеет настраиваемые параметры, которые ограничивают степень сканирования.
Обработка сессий.
Поскольку сканер Burp перемещается по целевому приложению так же, как и пользователь с браузером, он может автоматически работать практически с любым механизмом обработки сеансов, с которым могут работать браузеры. Нет необходимости записывать макросы или настраивать правила обработки сеансов, сообщающие Burp, как получить сеанс или проверить, является ли текущий сеанс действительным.
Сканер использует несколько «агентов», чтобы распараллелить свою работу. Каждый агент представляет отдельного пользователя приложения, перемещающегося со своим собственным браузером. Каждый агент имеет свой собственный файл cookie, который обновляется, когда приложение выдает его с файлом cookie. Когда агент возвращается в начальное местоположение, чтобы начать сканирование оттуда, его файл cookie очищается, чтобы имитировать совершенно новый сеанс браузера.
Запросы, которые сканер выполняет во время навигации, создаются динамически на основе предыдущего ответа, поэтому токены CSRF в URL-адресах или полях формы обрабатываются автоматически. Это позволяет сканеру правильно перемещаться по функциям, использующим сложную обработку сеансов, с нулевой настройкой пользователем:
Современные веб-приложения очень динамичны, и одна и та же функция приложения обычно возвращает разное содержимое в разных случаях в результате действий, которые пользователь выполнил за это время. Сканер Burp способен обнаружить изменения в состояниях приложения, возникающие в результате действий, выполненных им во время сканирования.
В приведенном ниже примере навигация по пути BC приводит к тому, что приложение переходит из состояния 1 в состояние 2.
Ссылка D переходит в логически другое место в состоянии 1 по сравнению с состоянием 2. Таким образом, путь AD переходит в пустую корзину, а ABCD - в наполненную корзину.
Вместо того чтобы просто заключить, что ссылка D является недетерминированной, сканер может определить путь изменения состояния, от которого зависит ссылка D. Это позволяет сканеру в будущем добраться до заполненной корзины, чтобы получить доступ к другим функциям, доступным из неё:
Сканирования Burp начинается с фазы без проверки подлинности, в которой учетные данные не отправляются. Когда это будет завершено, Burp обнаружит любые функции входа и самостоятельной регистрации в приложении.
Если приложение поддерживает самостоятельную регистрацию, Burp попытается зарегистрировать пользователя. Вы также можете настроить сканер на использование одного или нескольких уже существующих имен для входа.
Затем сканер переходит к этапу проверки подлинности. Он посетит функцию входа в систему несколько раз и отправит:
- Учетные данные для самостоятельно зарегистрированной учетной записи (если есть).
- Учетные данные для каждой настроенной ранее существующей учетной записи.
- Ложные учетные данные (они могут вызывать интересные функции, таких как восстановление учетной записи).
Современные веб-приложения часто содержат изменяемый контент, где «одно и то же» местоположение или функция будет возвращать ответы, которые существенно различаются в разных случаях, а не (обязательно) в результате какого-либо действия пользователя. Такое поведение может быть вызвано такими факторами, как каналы из социальных сетей или комментарии пользователей, встроенная реклама или действительно рандомизированный контент (сообщения дня, A / B-тестирование и т. Д.).
Сканер Burp способен идентифицировать много экземпляров изменчивого контента и правильно повторно идентифицировать одно и то же местоположение при разных посещениях, несмотря на разные ответы.
Это позволяет сканеру сосредоточить внимание на «основных» элементах в наборе ответов приложения, что, вероятно, является наиболее важным с точки зрения обнаружения ключевых навигационных путей к интересному контенту и функционалу приложения:
В этой ситуации сканер Burp захватит обе версии ответа в виде двух разных локаций и построит недетерминированный область на графике.
При условии, что степень недетерминированности в приложении не слишком велика, Burp может просканировать связанный контент и найти путь к контенту, который находится за недетерминированной ссылкой:
Максимальная глубина ссылки представляет собой максимальное количество переходов (щелкающих по ссылкам и отправляющих формы), которые сканер сделает из начальных URL-адресов. Современные приложения, как правило, встраивают массу навигации в каждый ответ в таких местах, как меню и нижний колонтитул страницы. По этой причине обычно можно получить доступ к подавляющему большинству содержимого и функциональности приложения за небольшое количество переходов от начального URL-адреса. Для полного охвата многоэтапных процессов (таких как просмотр товара, добавление его в корзину и проверка) потребуется больше прыжков.
Некоторые приложения содержат чрезвычайно длинные навигационные последовательности, которые не приводят к интересным другим функциям. Например, приложение для покупок может иметь огромное количество категорий товаров, подкатегорий и фильтров просмотра. Для сканера это может выглядеть как очень глубокое вложенное дерево ссылок, все из которых возвращают различный контент. В этой ситуации явно уменьшается отдача от глубокого проникновения в навигационную структуру, поэтому целесообразно ограничить максимальную глубину связи небольшим числом, например 8.
Crawl strategy.
Реальные приложения сильно различаются по способу организации контента и навигации, изменчивости их ответов, а также степени и сложности состояния приложения. С одной стороны, приложение может использовать уникальный и стабильный URL для каждой отдельной функции, возвращать детерминированный контент в каждом ответе и не содержать состояния на стороне сервера.
С другой стороны, приложение может использовать эфемерные URL-адреса, которые меняются каждый раз при доступе к функции, перегруженные URL-адреса, которые достигают различных функций по разным путям навигации, изменчивый контент, который изменяется недетерминированно, и функции с отдающие множество различных ответов, когда, действия пользователя вызывают изменения в содержании и поведении.
Сканер Burp может справиться с обеими этими крайностями. При необходимости он может обрабатывать временные и перегруженные URL, изменяемый контент и изменения в состоянии приложения.
Тем не менее, полная обработка этих случаев накладывает существенные накладные расходы на количество работы, связанной с обходом. Вы можете использовать настройку стратегии сканирования, чтобы настроить подход, применяемый к конкретным приложениям.
На практике этот параметр представляет собой компромисс между скоростью сканирования и достигнутой полнотой охвата. Стратегия по умолчанию представляет собой компромисс между скоростью и охватом, который подходит для типичных приложений.
Из доступных типов стратегий, вы можете выбирать ту, которая более подходит, для конкретного случая.
Сканирование современных приложений иногда является бесполезным упражнением из-за большого количества функциональных возможностей с изменяющимся состоянием, изменчивого контента и неограниченной навигации. Сканер Burp использует различные методы, чтобы максимизировать обнаружение уникального контента в начале сканирования. Настройки пределов сканирования позволяют наложить ограничение на объем сканирования, так как оно достигает точки убывающей отдачи. Как правило, целесообразно настроить ограничение для степени сканирования, основываясь на ваших знаниях о сканируемом приложении.
Вы можете ограничить сканирование на основе:
- Потраченного времени.
- Количество обнаруженных уникальных локаций. Местоположение представляет собой отдельную единицу содержимого или функциональности в зависимости от выбранной стратегии сканирования.
- Количество выполненных HTTP-запросов.
Эти параметры определяют, как сканер будет взаимодействовать с любыми функциями входа в систему, которые встречаются во время сканирования.
Существуют отдельные параметры для входа в приложение, которые позволяют указать некоторые существующие учетные данные учетной записи, которые должны быть отправлены в функции входа в систему для доступа к аутентифицированному контенту за именем входа. Здесь вы можете настроить:
Должен ли сканер попытаться самостоятельно зарегистрировать пользователя?
- Это может быть полезно во многих приложениях, устраняя необходимость вручную настраивать учетную запись пользователя перед сканированием.
Это может быть полезно для доступа к функциям восстановления учетной записи, которые доступны при отправке неверных учетных данных. Обратите внимание, что сканер Burp не будет преднамеренно передавать какие-либо из настроенных учетных записей приложения, используя недопустимые пароли, чтобы не вызывать блокировку учетных записей для этих учетных записей.
Эти параметры управляют тем, как Burp Scanner обрабатывает ошибки приложения (сбои подключения и тайм-ауты передачи), возникающие на этапе сканирования.
Вы можете настроить следующие параметры:
Количество последовательных запросов на тайм-аут или общий процент запросов на тайм-аут до приостановки задачи.
Количество повторных проходов, выполненных по завершении сканирования, для повторных запросов, для которых истекло время ожидания.
Вы можете оставить любой параметр пустым, чтобы отключить его.
Раздел «Вход в приложение» на панели запуска сканирования позволяет указать учетные данные, которые следует отправлять в любые функции входа в систему. Сканер будет использовать их для обнаружения аутентифицированного контента за функциями входа в систему. Искатель также попытается самостоятельно зарегистрировать учетные записи и использовать эти учетные данные в дополнение к предоставленным.
Этот раздел недоступен, если в качестве типа сканирования выбран «Аудит выбранных элементов», так как сканирование не выполняется.
Resource pool options.
Раздел «Пул ресурсов» панели запуска сканирования позволяет указать пул ресурсов, в котором будет выполняться сканирование.
Пулы ресурсов используются для управления использованием системных ресурсов в нескольких задачах. Каждый пул ресурсов может быть настроен с различными параметрами для максимального количества одновременных запросов и регулирования между запросами.
Запускаем сканирование и отслеживаем его прогресс на главной вкладке:
- Аудит на наличие уязвимостей.
- Эксплуатация обнаруженных уязвимостей.
Спасибо за внимание, материал подготовлен специально для форума protey.net
Последнее редактирование: