3

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

1.包含在上下文中(context/includeContext)

2.将认证方式改为formBased。(authentication/setAutenticationMethod) 这里我只传递 contextID、authMethodName 并且在 authMethodConfigParams 中只传递 logiunUrl。不是登录请求数据。我试图将 authMethodConfigParams 作为

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

但是当我使用它时,该字段没有填满。

3.设置登录指标(authentication/setLoggedInIndicator)

4.启用自动重新认证(auth/autoReauthON)

5.添加新用户(users/nweUser)

6.为用户设置凭据(users/setAuthenticationCredentials)

7.启用用户(users/setUserEnabled)

8.Spider作为新用户(spider/scanAsUser)

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

username=ZAP&password=ZAP&rememberMe=true

我认为这是问题所在。为什么不采用新用户凭据?

提前致谢

4

2 回答 2

3

我使用这个命令及其工作//

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/
于 2016-08-30T05:06:02.323 回答
2

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

于 2014-12-28T14:01:27.253 回答