使用 API 调用的 ZAP 身份验证



我正在使用 ZAP API 调用来使用命令行测试站点。但是即使我遵循了正确的步骤,我也遇到了用户身份验证问题。但是当蜘蛛作为用户时,我仍然无法通过登录页面。以下是我正在编写的步骤。

1.包含在上下文中(上下文/包含上下文(

2.将身份验证方法更改为基于表单。(身份验证/设置身份验证方法( 在这里,我只传递contextID,authMethodName,在authMethodConfigParams中只传递logiunUrl。不是登录请求数据。我试图将authMethodConfigParams作为

loginUrl=**********************&loginRequestData=username={%username%}&password={%password%}

但是当我使用它时,该字段不会填满。

3.设置登录指示器

(身份验证/设置登录指示器(

4.启用自动重新身份验证(身份验证/自动重新身份验证(

5.添加新用户(用户/用户(

6.为用户设置凭据(用户/设置身份验证凭据(

7.启用用户(用户/设置用户已启用(

8.蜘蛛作为新用户(蜘蛛/扫描用户(

但是在爬虫中,它无法通过登录页面。当我打开UI应用程序时,所有API调用都已完成,所有设置已在会话属性上配置。但是当我检查 POST 请求时,如下所示。

username=ZAP&password=ZAP&rememberMe=true

我认为这就是问题所在。为什么它不接受新用户的凭据?

提前致谢

我使用此命令及其工作//

docker run --rm -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-baseline.py -t http://example.com/ -g gen.conf -r testreport.html authMethodName : formBasedAuthentication authMethodConfigParams :loginUrl=http://example.com/admin/login/?next=/admin/&csrfmiddlewaretoken=VA3M5L1y6ieXjb1e9AqRzBdqbgY4afrL&username=admin@admin.com&password=admin&next=/admin/

我的问题在于我用来传递authMethodConfigParams的方式是错误的。 authMethodConfigParams应该是"x-www-form-urlencoded",而不是正常形式。所以我使用 http://www.url-encode-decode.com/来转换我的 authMethodConfigParams 并将其传递给 API。同样,在传递scanAsUser时,我必须以"x-www-form-urlencoded"格式传递。所以这是我的解决方案

最新更新