对经过身份验证的 API 扫描的 Zap Docker 映像进行故障排除

问题描述 投票:0回答:1

我正在尝试使用 Zap Docker 映像进行 API 扫描,尽管通过了身份验证配置,但经过身份验证的端点仍返回 404/403 错误。未经身份验证的端点可以正确扫描。该问题涉及确保扫描过程中的身份验证。 Docker 镜像中适当地提供了 OpenAPI 定义和配置文件。但是,尚不清楚为什么特定端点的身份验证失败。

我目前正在尝试使用 Zap(开源工具)Docker 映像进行 API 扫描,方法是通过命令提示符传递 API 的 Swagger 文件并生成报告。这是我使用的命令:

docker run -v {pwd}:/zap/wrk/:rw -t owasp/zap2docker-weekly zap-api-scan.py -t openapi.json -f openapi -z "-config /zap/wrk/options .prop" -r report_html.html

在‘openapi.json’文件中,我传递了GitHub的OpenAPI定义,‘options.prop’文件包含:

-config replacer.full_list(0).description=AuthHeader
-config replacer.full_list(0).enabled=true
-config replacer.full_list(0).matchtype=REQ_HEADER
-config replacer.full_list(0).matchstr=Authorization
-config replacer.full_list(0).regex=false
-config replacer.full_list(0).replacement=Bearer MyToken

我已将 OpenAPI 定义和“options.prop”文件放在一个目录中(称为“{pwd}”),然后将其安装在 Docker 映像中。

扫描确实会生成报告作为输出,但我注意到它正在扫描不需要身份验证的请求。对于需要身份验证的端点,扫描会返回状态代码 404 和 403。

我还尝试使用以下命令发送需要身份验证的单个端点,其中 users 是您在 github 中的用户名,repo_name 是私有存储库:

docker run --rm -v "%cd%":/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:每周 zap-api-scan.py -t https://api.github .com/repos/users/repo_name/languages -f openapi -z“-configfile /zap/wrk/options.prop”-r report01.html

使用zaps docker镜像执行扫描时,生成的报告包含403错误,如下所示

我还在邮递员上测试了端点和身份验证令牌,以确保它们工作正常,并且它们按预期工作。

我正在努力找出问题所在以及如何纠正它以执行经过身份验证的 API 扫描。

不确定 zap 是否没有从 options.prop 文件中获取身份验证令牌,或者 github 对端点有一些限制。如果 github 确实有一些限制,是否有任何其他 API 可以用来通过 Zap 的 docker 镜像进行测试?

任何帮助或见解将不胜感激!

owasp web-api-testing zap api-security
1个回答
0
投票

您检查过 ZAP 身份验证决策树吗? https://www.zaproxy.org/docs/authentication/

如果没有从那里开始。它应该可以让您找到最适合您的选择。如果您仍然遇到问题,那么 ZAP 用户组是寻求更详细帮助的最佳场所。

© www.soinside.com 2019 - 2024. All rights reserved.