企业专业的

与burp扫描仪一起扫描API

  • 最近更新时间:2022年7月1日

  • 阅读时间:3分钟

bepaly下载 能够扫描基于JSON的API定义以了解漏洞。默认情况下,爬虫试图解析其遇到的任何API定义,以识别潜在的终点以及其支持的方法和参数。您还可以在启动扫描时明确提供API定义的URL。基于它发现的端点,Burp扫描仪然后能够得出新的位置进行爬网和审核。

就像扫描应用程序的其他任何部分一样,爬网期间使用的相同请求集也将用于审核API端点。

笔记

如果愿意,可以禁用API扫描通过取消选择解析API定义扫描配置中的爬网选项。您可以在下面找到此选项各种各样的

API扫描的先决条件

Burp扫描仪需要能够解析API定义以进行扫描。目前,仅对于满足以下要求的定义才有可能:

  • API定义必须是OpenAPI版本3.x.x规范。爬虫使用Openapi在定义的最高层处键,以帮助确定发现的文档是否为API定义。
  • API定义不得包含任何外部引用。

在扫描过程中,任何不符合这些要求的定义都将跳过。

从API定义得出位置

解析API定义时,爬网通常会为每个端点创建多个位置。如果端点支持多个方法,则为每个方法创建一个单独的位置。同样,如果多个API服务器处于范围中,则单个方法和端点组合会产生独立的位置,代表每个不同服务器的相同调用。

例如,假设给定的端点支持得到方法。如果只有一台服务器处于范围,则将从此端点派生两个位置。但是,如果有三个服务器,这将导致总共六个新位置。

API扫描期间的参数处理

在爬网期间,为每个端点定义参数的方式会影响Burp扫描仪发送的请求数:

  • 如果定义了可选参数,则爬网将至少两个请求发送到该端点:一个仅包含强制性参数的请求和另一个包括所有可选参数的请求。
  • 对于枚举类型,爬网将为每个参数的允许值发送单独的请求。

这有助于确保每个端点的最大覆盖范围。

每个请求中用于参数的值也部分由API定义确定。如果为参数提供了示例值,则crawler将在每种情况下使用最终示例。否则,它将生成合适的自定义值。

API扫描的限制

当爬虫试图解析API定义时,适用以下限制。如果端点不符合这些限制,则将其排除在扫描之外。在每种情况下,您都可以检查事件日志,以了解为什么要跳过特定的端点。

  • 尽管扫描将继续使用Burp的正常身份验证处理功能,但该爬网机当前无法处理在端点级别上实现的任何身份验证。
  • 服务器参数和路径参数仅在枚举类型或定义中提供示例值时支持它们。
  • 不支持需要在请求中存在以下任何以下任何内容的端点:
    • 其他HTTP标头
    • 该类型的查询或身体参数大批。但是,请注意,支持这种类型的JSON主体参数。
    • 该类型的查询或身体参数XML
    • 具有嵌入式混合类型的查询或身体参数,例如JSON参数应用/X-WWW-Form-urlenCoded身体
    • 查询类型的参数JSON。但是,请注意,支持这种类型的身体参数。
    • 类型的身体参数多部分

本文是否有帮助?