API攻防 | 如何为测试目标制作定制 API 文档

图片

当目标没有记录其API 的API文档时,测试时可能很难进行。因此对于安全研究人员和 Web 渗透测试人员来说,对目标进行定制API 文档是很有价值的。

在本文中,我将讨论如何在目标不存在API 文档的情况下自己制作 API 文档。我将演示如何自动化此过程,并向您展示如何在短短几分钟内直接在 Postman 中将定制API文档武器化。

为什么要关心 API 文档?

API 文档之所以重要有几个原因。首先,它让您了解 API 可以做什么以及如何使用它。其次,它提供了一种探索新 API 的好方法,而无需阅读源代码。

API 文档可以包含正确定义的结构,涵盖从端点功能到数据类型和实际对象模式的所有内容。技术内容可以包括有关允许的请求方法、请求需要哪些参数以及请求正文中可能需要的任何其他数据的详细信息。

最后,在某些情况下,API 文档可能包含可用于创建可与 API 通信的客户端的示例。事实上,一些 API 文档功能(例如 Swagger 规范中的功能)包含实现逻辑,允许您从文档直接向 API 发送请求。

稍后我们会讨论 Swagger 规范。但首先,我想解释一下什么是定制 API 文档。

什么是定制 API 文档?

定制 API 文档是由攻击者(而不是 API 发布者)创建的的 API 的文档。它用于通过从代理或浏览器中的网络选项卡直接保存的 HTTP 流量生成其规范文档来枚举和发现 API 的功能。

在某些情况下,它也可用于直接攻击 API。我们会解决这个问题的。现在,我们来谈谈定制 API 文档的一些好处。

定制 API 文档的好处

在理想情况下,我开发人员将使用 OpenAPI 规范提供完整的 API 文档(不用担心,我稍后会介绍它的内容),并包括支持与远程服务集成的代码所需的变量、对象和端点的描述。

但真实情况是,开发人员可能不会留下或暴露 OpenAPI 文档。

虽然从代码生成规范文档只需花费很少的精力,但我们需要自己控制并在探索服务器时执行制作 API 文档的工作。没关系。这种方法有很多好处。

您获得清晰的 API 操作说明

说实话。保持文档最新可能很困难。随着 API 的变化,开发人员很容易忘记编辑现有端点的详细信息;他们可能会忘记编写新文档或将其保存回源代码管理(如 GitHub)。

因此,通过生成您自己的定制 API 文档,您始终拥有基于 API 实际用途的最新文档。您可以捕获请求中的实际 URL 及其所有数据(通常采用 XML 或 JSON 格式)。因此您能够了解 API 的真正工作原理并记录任何差异。

跟踪目标的 API 生命周期

在现代 Web 应用程序中,敏捷开发使得很难跟上代码库的不断变化。但作为攻击者,了解目标应用程序中可用的端点以及它们在版本之间如何变化对您有利。Rogue API 文档为您提供了这种可见性,以便您可以随着服务的变化快速调整您的攻击向量。

在许多情况下,只需做一些额外的工作,您还可以构建自己的有关请求如何工作的说明。这使您能够支持“活的”定制文档,使您和您的团队能够专注于平台最需要测试的地方。

那么让我们来看看定制 API 文档是什么样子的。从讨论 Swagger 和 OpenAPI 规范开始。

Swagger 和 OpenAPI 规范

OpenAPI 规范[1]也称为 Swagger 规范,是一种文档格式,允许您描述 API 的功能。它提供了一种定义 API 公开的资源的方法,包括每个可用的方法(或端点)和参数。此外,它还可用于构建交互式文档和客户端库。

OpenAPI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值