【问题标题】:Authentication fails on OWASP ZAP active scanning with Swagger API definitions使用 Swagger API 定义的 OWASP ZAP 主动扫描身份验证失败
【发布时间】:2019-09-09 14:31:09
【问题描述】:

我正在尝试对使用 OWASP ZAP 的应用程序的 Swagger API (OpenAPI) 定义进行主动扫描。基本上,我需要使用自动化工具(当然不是手动工具)来测试应用程序的 API 端点,因为使用不同的有效负载和大型 API 手动测试它需要大量时间。我在进行主动扫描之前配置了 ZAP 上下文,从 URL/文件加载 API 定义,然后在上下文中确保它选择了正确的用户凭据。我已经测试了一些与 ZAP 完美配合的 Web 和移动应用程序,但我注意到如果应用程序使用自定义类型的身份验证而不是通常的 HTTP 标头 Authorization: Bearer: <token>,则 ZAP 无法进行身份验证,即使上下文和设置是正确的。这导致 ZAP 仅将有效负载发送到需要身份验证的页面,主要导致 HTTP 错误 4xx 并产生垃圾结果。该标头的示例是CustomizedAppTokenHeader: <token>

是否有人知道 ZAP 是否能够对具有自定义身份验证标头的应用程序进行主动扫描以获取身份验证令牌?我在想这是没有好的 ZAP 扫描结果的罪魁祸首。有关身份验证方案的更多信息,https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#Authentication_schemes

任何信息都将不胜感激,因为我一直在搜索这个问题。我非常需要这方面的帮助。

【问题讨论】:

    标签: api openapi owasp zap


    【解决方案1】:

    您可以设置身份验证脚本进行身份验证,然后获取身份验证令牌并将其设置在以下请求中。

    对于示例或灵感,我建议查看社区脚本存储库:https://github.com/zaproxy/community-scripts

    这是一个很好的示例文章,您也可以参考。 (虽然它显示了使用 python 脚本,但同样可以使用 JavaScript 完成):https://medium.com/faun/automating-authenticated-api-vulnerability-scanning-with-owasp-zap-eaddba0c2e94

    【讨论】: