3

我很好奇如何在 API 安全的上下文中使用 ZAP 来测试 RESTAPI。它只是可以使用的 OpenAPI 插件还是有其他(更有效的)方法?

4

2 回答 2

4

有一个 ZAP 常见问题解答 :) https://www.zaproxy.org/faq/how-can-you-use-zap-to-scan-apis/

ZAP 了解 JSON 和 XML 等 API 格式,因此可用于扫描 API。

问题通常是如何有效地探索 API。

有多种选择:

  • 如果您的 API 具有 OpenAPI/Swagger 定义,那么您可以使用OpenAPI 插件将其导入。
  • 如果您有端点 URL 列表,则可以使用包含 URL 的导入文件插件导入这些 URL。
  • 如果您对 API 进行了回归测试,那么您可以通过 ZAP 代理这些测试

附加组件可从 ZAP Marketplace 获得。

一旦 ZAP 知道 URL 端点,它就可以像扫描基于 HTML 的网站一样扫描它们。

如果您没有任何这些东西,请发布到ZAP 用户组,说明您正在尝试做什么以及遇到的问题。

有关更多详细信息,请参阅博客文章使用 ZAP 扫描 API

于 2020-06-17T09:28:52.180 回答
1

另外一个好主意是使用来自 OwaspZap 的 Fuzzer。

Fuzzing 允许您通过提交格式错误的请求、格式错误的参数和猜测未发布的 API 方法来触发 API 服务器的意外行为。

你可以在这里阅读什么是模糊测试:https ://owasp.org/www-community/Fuzzing

它将允许您模糊 URL 字符串或单个参数。

要启动模糊器,您需要:

  1. 右键单击请求 -> 攻击 -> Fuzz..
  2. 突出显示您要使用的参数,然后单击“添加”按钮
  3. 在新的有效负载窗口中单击添加,选择适当的选项并单击添加有效负载。

我建议在第 3 步选择“文件模糊器”选项并选择一个预定义的词表,或导出您自己的词表。你可以使用 Seclists 来查找一堆 fuzzing wordlists。这是为 API fuzzing 设计的一组词表https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content/api

此外,如果您知道方法,OwaspZap 允许您执行手动 API 测试。在这里您可以找到一些与 REST 安全性相关的链接:

https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html https://cheatsheetseries.owasp.org/cheatsheets/REST_Assessment_Cheat_Sheet.html

于 2020-06-19T12:23:55.963 回答