未通过 ZAP API 扫描 docker 映像进行身份验证

Posted

技术标签:

【中文标题】未通过 ZAP API 扫描 docker 映像进行身份验证【英文标题】:Authentication not happening through ZAP API Scan docker image 【发布时间】:2021-09-23 02:26:30 【问题描述】:

最初我尝试通过 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 密钥和在 bearer-token.js 中提供的授权类型。 导入 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=承载 XXXXXXXXXXXXXXXXXXXXXX'”

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

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

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

请帮我解决这个问题。 提前致谢。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于未通过 ZAP API 扫描 docker 映像进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

尝试扫描时 OWASP/ZAP 悬空

ZAP 被动扫描规则是扫描的一部分,即使在禁用它们之后也是如此

Owasp ZAP工具 - 如何获取通过的测试列表

Owasp zap 中基于标头的身份验证

Owasp zap 工具 - 如何获取通过和失败测试的列表?

Docker API配置错误漏洞被利用