我一直在使用 Zest 登录脚本运行 Zap 身份验证扫描,但在我更新 Zap docker 映像后身份验证已损坏 - 似乎是由于 API 的变化。
这是我得到的输出:
5309955 [ZAP-ProxyThread-3963] INFO org.parosproxy.paros.control.Control - New session file created
zap | 5313051 [ZAP-ProxyThread-3971] INFO org.zaproxy.zap.authentication.ScriptBasedAuthenticationMethodType - Loaded script for API:login.zst
zap | 5313633 [ZAP-ProxyThread-3975] WARN org.zaproxy.zap.extension.api.API - Bad request to API endpoint [/JSON/users/action/setAuthenticationCredentials/] from [10.254.0.6]:
zap | Missing Parameter (missing_parameter) : Username
这就是我提供身份验证参数的方式:
authmethod_params = ('scriptName=' + auth_script_name + '&'
'Submission Form URL={0}/{1}&'
'Username field=username&'
'Password field=password&'
'Target URL=http://www.example.com/login')
# setup authentication
auth = zap.authentication
auth.set_authentication_method(
contextid=context_id,
authmethodname=auth_method_name,
authmethodconfigparams=authmethod_params)
由于某种原因,API 无法识别用户名参数,随后登录失败。您能否提供一个当前示例,说明如何将基于脚本的身份验证的登录参数传递给Zap API?
非常感谢
找到原因:身份验证在新用户上中断,因为我没有在请求中更新 base 64 编码的凭据。