0

最初我尝试通过 ZAP UI 验证 API。我有一个文件夹结构

上下文,wrk->script->authentication->bearer-token.js,wrk->script->httpsender->header-set-bearer-token.js,wrk->script->zap_hooks.py。

在进行身份验证时,我选择了 ScriptBasedAuthentication 并加载了 Bearer-token.js 中提供的脚本、提供的令牌提供者 URL、API 密钥和 grantType。导入 Swagger.json 并运行 Active Scan。

ZAP UI 一切正常。

在尝试使用 ZAP API Scan docker 映像时,我收到警报

服务器返回响应码 401。

这可能表明应用程序无法正确处理意外输入。

由“HTTP 响应代码错误警报”脚本引发

正在扫描所有 api,但未对其进行身份验证。我正在运行的命令是

docker run -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-weekly zap-api-scan.py -t test.json -f openapi -r api-scan-report.html -z “ -config replacer.full_list(0).description=auth1 -config replacer.full_list(0).enabled=true -config replacer.full_list(0).matchtype=REQ_HEADER -config replacer.full_list(0).matchstr=授权 -config replacer.full_list(0).regex=false -config 'replacer.full_list(0).replacement=Bearer XXXXXXXXXXXXXXXXXXXXXX'”</h2>

“Bearer TokenXXXXX”之间有空格,所以我参考了这个https://github.com/zaproxy/zaproxy/issues/4332#issuecomment-367326344

但这对我不起作用。Bearer 令牌再次仅在 5 分钟内有效,然后过期。

如果我提供--hook=zap_hooks.py,它会说在/zap/zap_hooks.py 找不到自定义钩子文件 我从一个星期开始尝试这个,但没有运气。请帮助我如何验证我的 API 可以摆脱 401(未经授权)

请帮我解决一下这个。提前致谢。

4

1 回答 1

0

尝试使用zap.shzap.bat脚本在本地启动 ZAP 并指定相同的-config参数 - 桌面将从应用这些参数开始,因此您可以手动检查替换规则是否已设置并按预期工作。

或者使用身份验证 env var 选项:https ://www.zaproxy.org/docs/desktop/start/features/authentication/#envvars - 如果您只想注入标头,那么它可能对您来说更容易。

于 2021-07-14T07:49:40.450 回答