Burp Suite Enterprise Edition:GraphQL文档

介绍

此GraphQL API公开了Burp Suite Enterprise Edition的核心功能。您可以使用它来读取和编写与使用Web UI相同的大多数数据,包括您的网站,扫描,代理机和发现的任何问题。beplay体育能用吗这极大地促进了Burp Suite Enterprise Edition的集成以及其内置的BURP扫描仪,以及广泛的第三方软件和您的CI/CD Workflow。

关于GraphQl

简而言之,GraphQL是API的查询语言,也是处理这些查询的运行时。与REST API不同,GraphQL API是根据对象类型及其字段而不是端点组织的。这有效地意味着所有数据均以单个“端点”的态度公开。您可以通过将它们全部嵌套在一个单个层次的查询中,从而指定要获取的对象以及它们的哪个字段,该查询将所有这些数据返回一个响应中。返回的JSON数据的结构直接反映了您发送的查询的层次结构。这使您能够控制返回的数据的显示方式,以确保您始终获得可预测的结果。至关重要的是,这也意味着您只收到您要求的对象和字段的数据,仅此而已。

GraphQL API中可用的对象类型在架构中定义。每种对象类型都有一个预定义的字段,该字段又有其值允许的对象或标量类型。此页面上的文档是由Burp Suite Enterprise Edition的GraphQL模式生成的。

如果您不熟悉GraphQL的基础知识,我们建议您在GraphQL网站上阅读指南以进行更深入的解释。beplay体育能用吗

验证

为了使用此API,您首先需要在Burp Suite Enterprise Edition中创建API用户。这将生成一个API密钥,您可以使用该密钥来验证发送给API的任何请求。

  1. 作为管理员登录到Burp Suite Enterprise Edition Web UIbeplay体育能用吗。
  2. 从汉堡菜单中,转到“团队”页面。
  3. 在“用户”选项卡上,单击“新用户”按钮。
  4. 输入一个名称和用户名,该名称和用户名将帮助您以后识别用户,例如“ GraphQL API用户”。
  5. 输入电子邮件地址,例如管理用户的电子邮件地址。
  6. 选择登录类型“ API密钥”。
  7. 保存更改。
  8. 提示时,选择按钮复制新的API键并将其保存在安全的地方。
  9. 将请求发送到GraphQL API时,将此API键包含在授权请求的标题。

使用此API

与REST API不同,您可以通过单个端点与GraphQl API进行交互:您的webbeplay体育能用吗-server-url/graphql/v1

所有操作均通过将POST请求发送到此端点来执行。发生的服务器端是由您的请求包含的特定查询或突变确定的。可用的查询和突变以及可查询的对象类型在Burp Suite Enterprise Edition GraphQl架构中定义。您可以使用侧边栏中的链接访问模式的文档。

查询

GraphQL API上的所有读取操作都必须嵌套在根内询问目的。实际上,这意味着每次您想从API获取一些数据时,层次结构的最高级别是一个新的询问对象(带有您提供的名称)和至少一个查询字段。例如,一个查询以获取扫描发现的问题的查询将开始如下:

查询getissue($ scanid:id!,$ serialnumber:id!){ession(scan_id:$ scanid,serial_number:$ serialnumber){...}}}}

在此示例中getissue是我们给这个新的名字询问对象和问题是查询字段。“查询”页面提供了有关所有可用查询字段的信息,包括您可以使用哪些过滤器以及它们返回的对象类型。

在查询中,您确切指定要返回此对象的字段。如果查看返回对象类型的文档,则可以查看该对象类型可以包含的字段。例如,我们知道问题查询返回问题目的。查看了可用字段之后问题对象,我们决定要获取信心,,,,序列号, 和严重程度字段。为此,我们只会在这些字段的名称中嵌套问题查询字段如下:

查询getissue($ scanid:id!,$ serialnumber:id!){ession(scan_id:$ scanid,serial_number:$ serialnumber){prucels serial_number serial_number seriality}}}}

这将返回与您的查询相同的层次结构中的每个字段的问题对象:

{“ data”:{“ esseage”:{“ profors”:“ firce”,“ serial_number”:“ 123456789123456789”,“严重性”:“ high”}}}}

可查询对象

顾名思义,“可查询对象”的列表包含有关您可以获取数据的所有独立对象的信息。对象页面包含对象的简要说明及其所有字段的列表。对于每个字段,您可以看到它返回的对象类型,或者如果该字段不包含任何孩子,则表示该值的标量。请注意,不可用的值用感叹点表示。这意味着,在创建此类型的对象时,此字段将始终填充,因此,确保查询此字段以返回值。

其他对象

除了可查询的对象外,还有其他各种对象代表Burp Suite Enterprise Edition中的实体。这些对象可以嵌套在其他对象的字段中,但是您不能将它们直接查询为独立对象。

枚举或枚举器是一种特殊的标量类型,仅限于预定的一组允许值。例如,枚举严重程度可以有四个值之一:信息,,,,低的,,,,中等的,,,,高的,对应于Burp扫描仪的严重性评级。

突变

除了使用查询从API获取数据外,您还可以从Burp Suite Enterprise Edition中创建,更新和删除数据。在GraphQL术语中,这些写操作称为“突变”。正如查询都在根对象中独立的,突变都以根开始突变目的。“突变”页面包含可用突变的列表以及您需要为它们提供的输入。

例如,您可以使用突变delete_site从Burp Suite Enterprise Edition中永久删除站点。在文档中delete_site突变,您可以看到唯一必需的输入是要删除的站点的ID。结果,您将创建一个新的突变对象如下:

突变deletesite($输入:deleteSiteInput!){delete_site(输入:$ input){id}}}

您可以在本文档的其余部分中找到更多查询和突变的示例。有关通常使用GraphQL的更多信息,请参阅官方GraphQL文档。