Сканирование с аутентификацией ZAP без блокировки тестового пользователя

Вопрос или проблема

Я пытаюсь настроить аутентифицированное сканирование для веб-приложения, скажем, admin.example.com. Аутентификация осуществляется другим сервисом login.example.com через JSON AJAX вызов. После успешной аутентификации login.example.com устанавливает два куки: JWT-токен доступа и токен обновления для всего домена *.example.com. Моя проблема в том, что если я включаю конечную точку login.example.com в контекст сканирования, ZAP начинает тестировать параметры JSON-запроса и блокирует тестового пользователя до того, как он сможет пройти аутентификацию. С другой стороны, если я исключаю login.example.com из сканера, то попыток аутентификации вообще не будет. Я хочу использовать login.example.com только для аутентификации с заданными учетными данными, без брутфорса, без подмены параметров, без магии, а затем сканировать admin.example.com с действующей сессией. Возможно ли как-то это настроить?

Настройте ZAP так, чтобы он понимал вашу аутентификацию, а затем исключите ваш URL для входа. Для получения более подробной информации о том, как ZAP может обрабатывать аутентификацию, смотрите https://www.zaproxy.org/docs/authentication/

Ответ или решение

Для того чтобы успешно выполнить аутентифицированное сканирование с использованием OWASP ZAP, не блокируя тестового пользователя, вам необходимо правильно настроить контекст и параметры аутентификации. Вот шаги, которые нужно выполнить:

  1. Создание нового контекста:

    • Откройте ZAP и перейдите в раздел "Контексты" (Contexts).
    • Создайте новый контекст, который будет использоваться для вашего веб-приложения на admin.example.com.
  2. Настройка аутентификации:

    • В меню контекста выберите "Аутентификация" (Authentication).
    • Задайте способ аутентификации: выберите "Пользовательская аутентификация" (Use a script) или "Форма аутентификации" (Form-based Authentication), в зависимости от требований вашего сервиса.
    • Добавьте необходимый скрипт или настройте параметры формы для правильной аутентификации через login.example.com. Убедитесь, что в настройках указаны все параметры, которые отправляются в JSON AJAX-запросе.
  3. Исключение URL для входа:

    • Перейдите в настройки "Заключения" (Exclusions) контекста.
    • Добавьте login.example.com в список исключений. Это предотвратит тестирование этого URL во время сканирования, что снизит риск блокировки учетной записи.
  4. Настройка сканирования:

    • В меню "Настройки" (Options) убедитесь, что включены необходимые плагины для работы с JSON и AJAX.
    • Запустите сканирование только на admin.example.com с установленными параметрами аутентификации. Убедитесь, что сканер использует Cookies или заголовки, установленные после успешной аутентификации.
  5. Проверка и анализ результатов:

    • После завершения сканирования проверьте результаты и убедитесь, что все уязвимости отсканированы, а ваш тестовый пользователь не был заблокирован.
    • В случае возникновения ошибок, просмотрите логи для устранения проблем с аутентификацией или настройками.

Таким образом, запланировав аутентификацию и исключив URL для входа из сканирования, вы сможете успешно выполнить тестирование вашего веб-приложения без риска блокировки учетной записи пользователя. Для получения дополнительной информации о настройке аутентификации в ZAP, вы можете обратиться к официальной документации.

Оцените материал
Добавить комментарий

Капча загружается...