我正在使用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
我认为这是问题所在。为什么不采用新用户凭证?
提前致谢
答案 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/