Базовая авторизация в Zapproxy API

У меня есть этот завиток для вызова API:

curl -X POST -u user:password /to/the/end/point

И если я получу запрос с помощью zapproxy, я могу отправить его и провести активную атаку, но я пытаюсь вызвать этот вызов в api python. Я не могу пройти аутентификацию с использованием базовой авторизации (base64 или пользователь: пароль). Я пытаюсь создать контекст с графическим интерфейсом и экспортом и использовать его с zap-api-scan.py, но это не работает.

Я уже читал этот пост:

https://zaproxy.blogspot.com/2017/06/scanning-apis-with-zap.html

Базовая авторизация в OWASP ZAP

https://github.com/zaproxy/zap-core-help/wiki/HelpStartConceptsAuthentication#httpntlm-authentication.

Но я не нашел решения.

Не могли ли вы помочь мне, пожалуйста?

Спасибо.


person Pan conPan    schedule 19.06.2018    source источник
comment
Вы для начала настроили его в графическом интерфейсе? Я просто сколотил базовую аутентификацию с xampp вот так: chandanpatra .blogspot.com / 2013/08 /, а затем настроил HTTP / NTLM-аутентификацию в контексте ZAP и создал пользователя в контекстной панели «Пользователи» .... работал нормально: Spider, Active Scan, что угодно ... Также обратите внимание, когда ZAP запущен, вы можете получить доступ к API через браузер, чтобы выяснить, какие вызовы вам могут потребоваться и какие параметры они принимают.   -  person kingthorin    schedule 19.06.2018
comment
да, я пробовал, но думаю, что плохо выбираю правильные варианты. В разделе «Аутентификация» я выбираю «Аутентификация HTTP / NTLM», но не знаю, что вводить в поля.   -  person Pan conPan    schedule 19.06.2018
comment
Определите свой контекст (установив регулярное выражение (а)). Настройте аутентификацию в панели аутентификации, выберите HTTP / NTLM Authentication, введите имя хоста и порт (для хоста, который потребует аутентификации .... localhost 80 или www.example.org 443 или что-то еще). Перейдите в панель «Пользователи» и создайте пользователя (назовите его как хотите, введите имя пользователя и пароль, используемые для базовой аутентификации).   -  person kingthorin    schedule 19.06.2018
comment
в порядке!! У меня есть контекст, который работает в графическом интерфейсе, но когда я экспортирую и использую его с zap-api-scan.py в докере, он не работает: ./zap-api-scan.py -t target / to / end / point -f openapi -n / file / context   -  person Pan conPan    schedule 19.06.2018
comment
Не могли бы вы уточнить, чем не работать? Есть ошибка? Не получается импортировать? И т.д   -  person kingthorin    schedule 23.12.2018


Ответы (1)


У меня это есть, но не работает, не импортируйте контекст:

#!/usr/bin/env python

from zapv2 import ZAPv2


target = 'https://target/to/api'

zap = ZAPv2(proxies={'http': 'http://127.0.0.1:8888', 'https': 'http://127.0.0.1:8888'})

zap.context.import_context("/file/context")

print 'Accessing target %s' % target
zap.urlopen(target)
time.sleep(2)

print 'Spidering target %s' % target
scanid = zap.spider.scan(target)

time.sleep(2)

print 'Spider completed'

time.sleep(5)

print 'Scanning target %s' % target
scanid = zap.ascan.scan(target)

print 'Scan completed'
person Pan conPan    schedule 20.06.2018
comment
Также кажется, что вы запускаете паука и сканируете, не проверяя статус и не дожидаясь завершения? - person kingthorin; 20.06.2018
comment
Вы запустили контейнер докеров таким образом, чтобы был доступен / file / context? - person kingthorin; 22.06.2018
comment
У тебя что-нибудь получилось с этим? - person kingthorin; 09.07.2018