doyensec/inql
GitHub: doyensec/inql
一款用于 GraphQL 安全测试的 Burp Suite 扩展,提供 schema 分析、漏洞检测和批量攻击等功能。
Stars: 1737 | Forks: 178
# InQL v6.1.2 - 用于高级 GraphQL 测试的 Burp 扩展
[](https://doyensec.com/research.html)



[](https://github.com/doyensec/inql/tree/dev)
[](AUTHORS)
[](https://github.com/doyensec/inql/issues?q=is%3Aissue+is%3Aopen+label%3A%22Help+Wanted%22)
[](https://github.com/doyensec/inql/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+First+Issue%22)
## :rocket: 简介
欢迎使用 InQL,一款开源的 GraphQL 测试工具。该工具提供了旨在增强您的 GraphQL 测试体验的功能,使其更加高效和有效。
感谢您对 InQL 的信任。祝您测试愉快!
## :star2: 主要功能
InQL 用户界面包含三个主要组件:*Scanner*(扫描器)、*Batch Queries*(批量查询)和 *Engine Fingerprinting*(引擎指纹识别)选项卡。
### :mag_right: Scanner(扫描器)

*Scanner* 是 InQL 的核心,您可以在此分析 GraphQL endpoint 或本地 introspection schema 文件。它会自动生成所有可能的 queries、mutations 和 subscriptions,并将它们组织成结构化视图供您分析。
**:white_check_mark: 可自定义扫描**
InQL 提供了灵活的扫描自定义选项。您可以调整生成查询的深度或缩进使用的空格数。您还可以执行“兴趣点”扫描,以检测 GraphQL schema 中的潜在漏洞。
**:white_check_mark: 兴趣点分析**
运行兴趣点扫描后,系统会向您展示涵盖各种潜在漏洞的丰富数据集。您可以根据需要启用或禁用这些类别。
**:white_check_mark: 循环引用检测**
InQL 实现了循环引用检测。在分析 schema 之后,它会在扫描器结果视图中显示可能存在漏洞的查询。
**:white_check_mark: 与 Burp 的增强交互**
InQL 与 Burp 无缝集成,使您能够直接从 Burp 中的任何 GraphQL 请求生成查询。您还可以将自动生成的查询发送到其他 Burp 工具进行进一步分析。
**:white_check_mark: 自定义 Headers**
您可以为每个域设置自定义 headers,域列表会根据观察到的流量自动填充。
### :crossed_swords: Batch Queries(批量查询)
*Batch Queries* 选项卡允许您运行批量 GraphQL 攻击,这对于绕过实施不当的速率限制非常有用。
### :memo: Burp 原生消息编辑器
Burp 的原生消息编辑器现在增加了一个“GraphQL (InQL)”选项卡,提供了一种查看和修改 GraphQL 请求的高效方式。它还支持 schema 高亮显示以提高可读性。
### :crossed_swords: GraphiQL 和 GraphQL Voyager
InQL 现在实现了 GraphiQL 和 GraphQL Voyager 服务器。您可以将分析后的 schema 发送到其中,以进一步增强分析能力!
### :point_up: Engine Fingerprinting(引擎指纹识别)
此选项卡允许您扫描 GraphQL URL 以检索有关后端服务器技术的信息。
### :construction: Schema Bruteforcer(Schema 暴力破解)
此扫描器旨在在 introspection 被禁用时重建 schema。它基于 [Clairvoyance CLI 工具](https://github.com/nikitastupin/clairvoyance),使用正则表达式模式匹配来发现 schema 细节。
# :arrow_down: 安装
要成功安装 InQL,请确保满足以下要求:
Burp:
- 仅支持最新版本的 Burp。
- 兼容“Professional”(专业版)和“Community”(社区版)。
Java:
- Montoya API 需要 Java 17 或更高版本。
## :computer: 从 git 构建 InQL 扩展
1. 安装 Java 17+,例如在基于 Debian 的发行版中:
```
$ sudo apt install -y openjdk-17-jdk
$ java --version
openjdk 17.0.6 2023-01-17
```
2. 安装我们的构建工具 - [Taskfile](https://taskfile.dev):
```
$ # Mac OS & Homebrew:
$ brew install go-task
$ # Debian
$ sudo apt install -y task
```
2. 克隆仓库并拉取子模块:
```
$ git clone https://github.com/doyensec/inql
$ cd inql
$ # Optionally, checkout dev branch (might be broken / unstable!)
$ git checkout dev
```
3. 构建 InQL 扩展:
```
$ task all
```
这应该在仓库的根目录中生成一个名为 `InQL.jar` 或类似的文件。将其作为
Java 扩展加载到 Burp 中。
**开发环境**
如果您想为项目做出贡献,不需要特殊的环境。您只需在每次实施更改后重新构建项目即可。
为了加快代码编写工作,您可能希望在每次进行更改时自动重新构建扩展。只需运行
带有 `--watch` / `-w` 标志的 `kotlin` 任务即可:
```
$ task kotlin -w
```
# :handshake: 贡献
InQL 的繁荣离不开社区的贡献。无论您是开发者、研究人员、设计师还是漏洞猎人,您的专业知识对我们来说都无比珍贵。我们欢迎 bug 报告、反馈和 pull requests。您的参与有助于我们持续改进 InQL,使其成为社区更强大的工具。
互动最好通过 Github issue tracker 进行,但您也可以通过社交媒体 ([@Doyensec](https://twitter.com/Doyensec)) 联系我们。我们期待您的来信!
# :busts_in_silhouette: 贡献者
特别感谢我们的贡献者。您的奉献和承诺对于 InQL 的今天至关重要。
当前:
- **维护者:** Bartłomiej Górkiewicz [@bartek-doyensec (Github)](https://github.com/bartek-doyensec)
- **贡献者:** Savio Sisco [@lokiuox (Github)](https://github.com/lokiuox)
历史:
- **作者:** Andrea Brancaleoni [@nJoyneer (Twitter)](https://twitter.com/nJoyneer) / [thypon (Github)](https://github.com/thypon)
- **维护者:** Andrew Konstantinov [@execveat (Twitter)](https://twitter.com/execveat) / [@execveat (Mastodon)](https://infosec.exchange/@execveat)
- **贡献者:** Matteo Oldani [@matteoldani (Github)](https://github.com/matteoldani)
- 其他贡献者列表:[AUTHORS](AUTHORS)
本项目是在 [Doyensec](https://doyensec.com/research.html) 的支持下完成的。

## :rocket: 简介
欢迎使用 InQL,一款开源的 GraphQL 测试工具。该工具提供了旨在增强您的 GraphQL 测试体验的功能,使其更加高效和有效。
感谢您对 InQL 的信任。祝您测试愉快!
## :star2: 主要功能
InQL 用户界面包含三个主要组件:*Scanner*(扫描器)、*Batch Queries*(批量查询)和 *Engine Fingerprinting*(引擎指纹识别)选项卡。
### :mag_right: Scanner(扫描器)

*Scanner* 是 InQL 的核心,您可以在此分析 GraphQL endpoint 或本地 introspection schema 文件。它会自动生成所有可能的 queries、mutations 和 subscriptions,并将它们组织成结构化视图供您分析。
**:white_check_mark: 可自定义扫描**
InQL 提供了灵活的扫描自定义选项。您可以调整生成查询的深度或缩进使用的空格数。您还可以执行“兴趣点”扫描,以检测 GraphQL schema 中的潜在漏洞。
**:white_check_mark: 兴趣点分析**
运行兴趣点扫描后,系统会向您展示涵盖各种潜在漏洞的丰富数据集。您可以根据需要启用或禁用这些类别。
**:white_check_mark: 循环引用检测**
InQL 实现了循环引用检测。在分析 schema 之后,它会在扫描器结果视图中显示可能存在漏洞的查询。
**:white_check_mark: 与 Burp 的增强交互**
InQL 与 Burp 无缝集成,使您能够直接从 Burp 中的任何 GraphQL 请求生成查询。您还可以将自动生成的查询发送到其他 Burp 工具进行进一步分析。
**:white_check_mark: 自定义 Headers**
您可以为每个域设置自定义 headers,域列表会根据观察到的流量自动填充。
### :crossed_swords: Batch Queries(批量查询)
*Batch Queries* 选项卡允许您运行批量 GraphQL 攻击,这对于绕过实施不当的速率限制非常有用。
### :memo: Burp 原生消息编辑器
Burp 的原生消息编辑器现在增加了一个“GraphQL (InQL)”选项卡,提供了一种查看和修改 GraphQL 请求的高效方式。它还支持 schema 高亮显示以提高可读性。
### :crossed_swords: GraphiQL 和 GraphQL Voyager
InQL 现在实现了 GraphiQL 和 GraphQL Voyager 服务器。您可以将分析后的 schema 发送到其中,以进一步增强分析能力!
### :point_up: Engine Fingerprinting(引擎指纹识别)
此选项卡允许您扫描 GraphQL URL 以检索有关后端服务器技术的信息。
### :construction: Schema Bruteforcer(Schema 暴力破解)
此扫描器旨在在 introspection 被禁用时重建 schema。它基于 [Clairvoyance CLI 工具](https://github.com/nikitastupin/clairvoyance),使用正则表达式模式匹配来发现 schema 细节。
# :arrow_down: 安装
要成功安装 InQL,请确保满足以下要求:
Burp:
- 仅支持最新版本的 Burp。
- 兼容“Professional”(专业版)和“Community”(社区版)。
Java:
- Montoya API 需要 Java 17 或更高版本。
## :computer: 从 git 构建 InQL 扩展
1. 安装 Java 17+,例如在基于 Debian 的发行版中:
```
$ sudo apt install -y openjdk-17-jdk
$ java --version
openjdk 17.0.6 2023-01-17
```
2. 安装我们的构建工具 - [Taskfile](https://taskfile.dev):
```
$ # Mac OS & Homebrew:
$ brew install go-task
$ # Debian
$ sudo apt install -y task
```
2. 克隆仓库并拉取子模块:
```
$ git clone https://github.com/doyensec/inql
$ cd inql
$ # Optionally, checkout dev branch (might be broken / unstable!)
$ git checkout dev
```
3. 构建 InQL 扩展:
```
$ task all
```
这应该在仓库的根目录中生成一个名为 `InQL.jar` 或类似的文件。将其作为
Java 扩展加载到 Burp 中。
**开发环境**
如果您想为项目做出贡献,不需要特殊的环境。您只需在每次实施更改后重新构建项目即可。
为了加快代码编写工作,您可能希望在每次进行更改时自动重新构建扩展。只需运行
带有 `--watch` / `-w` 标志的 `kotlin` 任务即可:
```
$ task kotlin -w
```
# :handshake: 贡献
InQL 的繁荣离不开社区的贡献。无论您是开发者、研究人员、设计师还是漏洞猎人,您的专业知识对我们来说都无比珍贵。我们欢迎 bug 报告、反馈和 pull requests。您的参与有助于我们持续改进 InQL,使其成为社区更强大的工具。
互动最好通过 Github issue tracker 进行,但您也可以通过社交媒体 ([@Doyensec](https://twitter.com/Doyensec)) 联系我们。我们期待您的来信!
# :busts_in_silhouette: 贡献者
特别感谢我们的贡献者。您的奉献和承诺对于 InQL 的今天至关重要。
当前:
- **维护者:** Bartłomiej Górkiewicz [@bartek-doyensec (Github)](https://github.com/bartek-doyensec)
- **贡献者:** Savio Sisco [@lokiuox (Github)](https://github.com/lokiuox)
历史:
- **作者:** Andrea Brancaleoni [@nJoyneer (Twitter)](https://twitter.com/nJoyneer) / [thypon (Github)](https://github.com/thypon)
- **维护者:** Andrew Konstantinov [@execveat (Twitter)](https://twitter.com/execveat) / [@execveat (Mastodon)](https://infosec.exchange/@execveat)
- **贡献者:** Matteo Oldani [@matteoldani (Github)](https://github.com/matteoldani)
- 其他贡献者列表:[AUTHORS](AUTHORS)
本项目是在 [Doyensec](https://doyensec.com/research.html) 的支持下完成的。
标签:API安全, Burp Suite, Burp插件, Doyensec, GraphQL, InQL, JSON输出, JS文件枚举, Web安全, 二进制发布, 反取证, 安全测试, 安全评估, 开源工具, 攻击性安全, 蓝队分析