Аутентификация на основе форм OWASP ZAP для приложения HTTPS - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь использовать функцию проверки подлинности на основе форм в OWASP ZAP с использованием Python API ZAP.

Я заметил, что при использовании приложения HTTP (например, - http://demo.testfire.net/) оно может «паучить» и давать дополнительные URL-адреса после входа в систему. Однако, когда я пытаюсь сделать то же самое для приложения HTTPS, оно не получает дополнительные URL-адреса после входа в систему.

Мой вопрос здесь - поддерживает ли ZAP аутентификацию на основе форм только для веб-приложения, связанного с HTTP?

1 Ответ

0 голосов
/ 10 мая 2018

Да, и у нас есть часто задаваемые вопросы для этого: https://github.com/zaproxy/zaproxy/wiki/FAQformauth

Трудно отлаживать проблемы при использовании только API, поэтому я рекомендую сначала использовать пользовательский интерфейс, а после того, как вы это заработаете, преобразовать то, что вы сделали, в API.

Через пользовательский интерфейс:

  1. Элемент списка
  2. Исследуйте свое приложение при прокси через ZAP
  3. Войти, используя действительное имя пользователя и пароль
  4. Определите контекст, например, щелкнув правой кнопкой мыши верхний узел вашего приложения на вкладке Сайты и выбрав «Включить в контекст»
  5. Найдите «Запрос на вход» на вкладке «Сайты или история»
  6. Щелкните правой кнопкой мыши и выберите «Пометить как контекст» / «Запрос авторизации на основе формы»
  7. Убедитесь, что параметры имени пользователя и пароля установлены правильно - они почти наверняка не будут!
  8. Найти строку в ответе, которая может использоваться для определения, вошел ли пользователь в систему или нет
  9. Выделите эту строку, щелкните правой кнопкой мыши и выберите «Отметить как контекст» / «Индикатор входа / выхода» в зависимости от ситуации - вам нужно установить только один из них, а не оба
  10. Дважды щелкните по соответствующему узлу Context и перейдите на страницу «Пользователи» - проверьте правильность данных пользователя, добавьте всех остальных пользователей, которых вы хотите использовать, и включите их все
  11. Перейдите на страницу контекста «Принудительный пользователь» и убедитесь, что выбран пользователь, которого вы хотите протестировать
  12. Теперь должна быть включена кнопка «Принудительный режим пользователя - нажмите, чтобы включить»
  13. Нажатие этой кнопки заставит ZAP повторно отправить запрос на аутентификацию, когда обнаружит, что пользователь больше не вошел в систему, т. Е. С помощью индикатора «вошел в систему» ​​или «вышел из системы».

Через API процесс такой же, но с использованием вызовов API:

context/includeInContext
authentication/setAuthenticationMethod

authMethodName : formBasedAuthentication
authMethodConfigParams : loginUrl=http://example.com/login.html&loginRequestData=username%3D%7B%25username%25%7D%26password%3D%7B%25password%25%7D
    authentication/setLoginIndicator or setLogoutIndicator
    forcedUser/setForcedUserModeEnabled

Значения параметров authMethodConfigParams должны быть закодированы в URL, в этом случае loginRequestData - это имя пользователя = {% username%} & password = {% password%}

...