
Расширение Burp для тестирования проблем авторизации. Автоматическое повторение запросов и извлечение значений параметров на лету.
Расширение Burp помогает находить ошибки авторизации. Просто перемещайтесь по веб-приложению с пользователем, имеющим высокие привилегии, и позвольте Auth Analyzer повторять ваши запросы для любого заданного непривилегированного пользователя. Благодаря возможности определять параметры, Auth Analyzer может автоматически извлекать и заменять значения параметров. Например, CSRF-токены или даже целые характеристики сессии могут быть автоматически извлечены из ответов и заменены в последующих запросах. Каждый ответ будет проанализирован и помечен статусом обхода.
Существуют и другие расширения Burp, которые делают в основном то же самое. Однако мощь функции параметров и автоматического извлечения значений — главная причина выбрать Auth Analyzer. С ним вам не нужно знать содержимое данных, которые должны быть обменены. Вы можете легко определить свои параметры и cookie, а Auth Analyzer на лету подхватит нужные значения. Auth Analyzer не выполняет никаких предварительных запросов. Он делает в основном то же самое, что и ваше веб-приложение, с вашими определёнными ролями/сессиями пользователей.
(1) Создайте или клонируйте сессию для каждого тестируемого пользователя.
(2) Сохраняйте и загружайте настройки сессии
(3) Укажите характеристики сессии (заголовок(и) и/или параметр(ы) для замены)
(4) При необходимости установите фильтры
(5) Запуск / остановка и приостановка Auth Analyzer
(6) Укажите фильтр таблицы
(7) Перемещайтесь по веб-приложению с другим пользователем и отслеживайте результаты повторённых запросов
(8) Экспортируйте данные таблицы в XML или HTML
(9) Вручную анализируйте исходные и повторённые запросы/ответы

Если у вас есть ресурсы, которые вы хотите протестировать в вашей карте сайта, выполнить тесты авторизации очень легко и быстро. На первом этапе определите сессии для тестирования. Затем просто разверните карту сайта, выберите ресурсы и повторите запросы через контекстное меню. Дополнительно можно задать, какие запросы следует повторять, а какие нет. С помощью этого вы можете выполнить тесты авторизации сложного веб-сайта за считанные секунды.
Auth Analyzer предоставляет возможность определять параметры, которые заменяются перед повторением запроса для данной сессии. Значение для заданного параметра может быть установлено в соответствии с различными требованиями.
Значение параметра будет извлечено, если оно встречается в ответе с одним из следующих условий:
Ответ с заголовком Set-Cookie, где имя cookie соответствует заданному Имени поля для извлечения
Ответ HTML-документа содержит поле ввода с атрибутом name, равным заданному Имени поля для извлечения
Ответ JSON содержит ключ, равный Имени поля для извлечения
По умолчанию Auth Analyzer пытается автоматически извлечь значение параметра из всех мест. Однако, нажав на значок настроек параметра, вы можете ограничить место автоматического извлечения по своему усмотрению.

Параметр будет извлечён, если ответ содержит указанные От строки и До строки в одной строке. Строку «От-До» можно задать вручную или напрямую через соответствующее контекстное меню. Просто выделите слово, которое хотите извлечь, в любом ответе и установите как Извлечение От-До для нужного параметра.
По умолчанию Auth Analyzer пытается извлечь значение из заголовка и тела большинства текстовых ответов. Однако, нажав на значок настроек параметра, вы можете ограничить место извлечения «От-До» по своему усмотрению.

Можно задать статическое значение параметра. Это может быть использовано, например, для статических CSRF-токенов или учётных данных.
Вам будет предложено ввести значение, если заданный параметр присутствует в запросе. Это можно использовать, например, для установки кодов 2FA.
Если значение установлено (извлечено или задано пользователем), оно будет заменено при наличии соответствующего параметра в запросе. Условия для замены параметров:
Параметр будет заменён, если он присутствует в одном из следующих мест:

В пути (например, /api/user/99/profile --> если присутствует параметр с именем user, значение 99 будет заменено)
Параметр URL (например, email=hans.wurst[a]gmail.com)
Параметр cookie (например, PHPSESSID=mb8rkrcdg8765dt91vpum4u21v)
Параметр тела — либо URL-Encoded, либо Multipart Form Data
Параметр JSON (например, {"email":"hans.wurst[a]gmail.com"})
По умолчанию значение параметра заменяется в каждом месте. Однако, нажав на значок настроек параметра, вы можете ограничить место замены по своему усмотрению.

Определённый параметр может быть полностью удалён, например, для тестирования механизмов проверки CSRF.
Задайте имя пользователя и пароль как статическое значение. Имя cookie сессии должно быть определено как автоизвлечение. Убедитесь, что вы начинаете навигацию по приложению без установленной cookie сессии. Войдите в веб-приложение. Auth Analyzer повторит запрос входа со статическими параметрами и автоматически получит сессию через заголовок Set-Cookie. Эта cookie будет использоваться для последующих запросов данной сессии. Определённая cookie будет обрабатываться как параметр, поэтому указывать заголовок Cookie не требуется.

Подсказка: Вы можете ограничить условия извлечения и замены для параметра, чтобы избежать сбоев на этапе извлечения/замены.

Определите заголовок Cookie и CSRF-токен (с автоматическим извлечением значения). Значение CSRF-токена будет извлечено, если оно присутствует в HTML-теге input, заголовке Set-Cookie или JSON-ответе данной сессии.

Поскольку метод Автоизвлечение работает только с HTML полями ввода, JSON-объектами или заголовками Set-Cookie, мы должны использовать общий метод извлечения под названием От строки до строки. С помощью этого метода можно извлечь любое значение из ответа, если оно находится между уникальной начальной и конечной строкой. Auth Analyzer предоставляет метод через контекстное меню для автоматической установки От строки и До строки. Просто выделите строку, которую хотите извлечь, и установите как Извлечение От-До через контекстное меню.

Поскольку заголовок Authorization не обрабатывается как параметр (в отличие от заголовка Cookie), мы можем использовать точку вставки заголовка для достижения нужного результата. Просто выделите и щёлкните правой кнопкой мыши значение, которое хотите заменить в указанном заголовке. Значение по умолчанию будет использовано, если значение параметра ещё не извлечено.

Просто создайте столько сессий, сколько нужно, чтобы тестировать несколько ролей одновременно.

Просто нажмите Renew на панели состояния сессии или повторите затронутый запрос через контекстное меню (правая кнопка мыши по записи в таблице). Подсказка: Запросы входа можно пометить и затем отфильтровать.

Исходные запросы могут быть отброшены для тестирования идемпотентных операций (например, функция DELETE).

Если анонимному пользователю требуется действительная характеристика (например, допустимое значение cookie), необходимо определить заголовок как обычно. В противном случае можно определить заголовок для удаления следующим образом:

Вы можете легко протестировать большое количество конечных точек на индивидуальные настройки CORS, добавив заголовок Origin в Заголовки для замены и выбрав Test CORS на панели сессии. При выборе Test CORS Auth Analyzer изменит HTTP-метод на OPTIONS перед повторением запроса.

Указанный параметр можно удалить, выбрав Флажок удаления. Это может быть использовано, например, для тестирования механизма проверки CSRF.

Auth Analyzer предоставляет встроенное представление сравнения для проверки различий между двумя ответами. Просто отметьте сообщение, которое хотите проанализировать, и измените представление сообщения (1). Теперь вы можете сравнить два запроса (2) (3). Встроенная функция Diff вычислит и покажет различия между двумя запросами в реальном времени (4).

Развёрнутое представление Diff:

Auth Analyzer должен обрабатывать два типа запросов/ответов:
Ответ содержит значение, которое необходимо извлечь
Запрашиваемый ресурс не должен быть доступен для заданной(ых) сессии(ий)
Например, мы не хотим обрабатывать статический JavaScript-файл, поскольку он доступен всем и (надеюсь) не содержит защищённых данных. Для этого можно установить следующие типы фильтров:
оба ответа имеют одинаковое тело ответа и одинаковый код ответаоба ответа имеют одинаковый код ответа и оба ответа имеют длину тела с отклонением +-5%