Аутентификация на основе форм OWASP ZAP для приложения HTTPS

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

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

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


person Mh07    schedule 10.05.2018    source источник


Ответы (1)


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

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

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

  1. Пункт списка
  2. Изучите свое приложение во время проксирования через ZAP
  3. Войдите, используя действующее имя пользователя и пароль
  4. Определите контекст, например, щелкнув правой кнопкой мыши верхний узел вашего приложения на вкладке «Сайты» и выбрав «Включить в контекст».
  5. Найдите "Запрос на вход" на вкладке "Сайты" или "История".
  6. Щелкните его правой кнопкой мыши и выберите «Пометить как контекст» / «Запрос авторизации на основе формы».
  7. Убедитесь, что параметры имени пользователя и пароля установлены правильно - они почти наверняка не будут!
  8. Найдите в ответе строку, по которой можно определить, вошел ли пользователь в систему или нет.
  9. Выделите эту строку, щелкните правой кнопкой мыши и выберите «Пометить как контекст» / «Индикатор входа / выхода» в зависимости от ситуации - вам нужно установить только один из них, а не оба.
  10. Дважды щелкните соответствующий узел контекста и перейдите на страницу «Пользователи» - проверьте правильность сведений о пользователе, добавьте любых других пользователей, которых вы хотите использовать, и включите их всех.
  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 = {% username%} & password = {% password%}.

person Simon Bennetts    schedule 10.05.2018
comment
Я получил процедуру с использованием подхода пользовательского интерфейса, хотел уточнить, что при обновлении значения authMethodConfigParams, если данные POST uid = xyz & passw = xyz & btnSubmit = Login, я закодировал его как uid% 3Dadmin% 26passw% 3Dadmin% 26btnSubmit% 3DLogin и использовал Вызов API (zap.authentication.set_authentication_method (contexttid, authmethodname, authmethodconfigparams)), который привел к выводу missing_parameter. Метод, который я здесь использую, правильный или я делаю это неправильно? Пожалуйста, предложите. Спасибо. - person Mh07; 10.05.2018
comment
Я не думаю, что stackoverflow - лучший форум для отладки подобных проблем - группа пользователей ZAP groups.google. com / group / zaproxy-users лучше :) - person Simon Bennetts; 10.05.2018
comment
Есть хороший видеоурок, который объясняет это: alldaydevops.com/zap-in-ten - person Lonzak; 12.11.2020
comment
Спасибо :) Скоро появятся и другие видео - они будут объявлены в группе пользователей ZAP и связаны с zaproxy.org/ видео - person Simon Bennetts; 13.11.2020