首页 > 解决方案 > Zap API 中缺少参数用户名错误

问题描述

我一直在使用 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?

非常感谢

标签: python-3.xowaspzap

解决方案


找到原因:由于我没有在请求中更新 base 64 编码的凭据,因此新用户的身份验证中断了。


推荐阅读