使用API​​调用进行ZAP身份验证

时间:2014-12-22 04:55:18

标签: authentication owasp zap

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

1.Include in context(context / includeContext)

2.更改身份验证方法到formBased。 (认证/ setAutenticationMethod)     这里我只传递contextID,authMethodName和authMethodConfigParams中的logiunUrl。不是loginrequestData。我试图将authMethodConfigParams传递为

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

但是当我使用它时,这个领域并没有填满。

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

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

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

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

7.Enable user(users / setUserEnabled)

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

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

username=ZAP&password=ZAP&rememberMe=true

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

提前致谢

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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/