📜  Graphw00F – 用于 GQL 端点的 GraphQL 指纹识别工具(1)

📅  最后修改于: 2023-12-03 15:01:04.039000             🧑  作者: Mango

Graphw00F - 用于 GQL 端点的 GraphQL 指纹识别工具

尝试对 GraphQL 端点进行指纹识别时,Graphw00F 是一个十分有用的工具。它是一个 Python 脚本,通过发送 GraphQL 查询来探测端点的响应,并尝试确定其使用的 GraphQL 实现。

安装

Graphw00F 可以从 GitHub 的仓库中克隆而来。请按照以下步骤进行安装:

  1. 打开终端并导航到所需目录

  2. 输入以下命令,克隆 Graphw00F 仓库:

    git clone https://github.com/JoelGMSec/Graphw00F.git
    
  3. 进入 Graphw00F 目录,并安装所需依赖:

    cd Graphw00F
    pip3 install -r requirements.txt
    
使用

Graphw00F 可以接收多个 GraphQL 端点作为输入,并对所有输入端点执行指纹识别。以下是使用该工具的基本语法:

python3 graphw00f.py -t <targets>

这里的 <targets> 指代一个或多个 GraphQL 端点的 URL,多个 URL 应以空格分隔。例如:

python3 graphw00f.py -t https://example.com/graphql https://test.com/api/graphql

工具将对两个端点进行指纹识别,输出每个端点使用的 GraphQL 实现。

指纹数据库

Graphw00F 使用一个指纹数据库,该数据库中包含了各种 GraphQL 实现的指纹信息。这些指纹信息包括查询,响应以及特征标志,通过这些信息可以帮助 Graphw00F 确定某个 GraphQL 实现。

默认情况下,Graphw00F 将使用默认的指纹数据库。可以通过将 -db 标志与自定义数据库文件路径一起使用来修改此行为:

python3 graphw00f.py -t https://example.com/graphql -db custom_database.json
更多选项

Graphw00F 提供许多自定义选项,例如:

  • 超时时间 -to <seconds>:指定查询请求的超时时间。
  • 代理服务器 -p <ip:port>:指定代理服务器的 IP 地址和端口号。
  • 不同的指纹识别级别 -l <level>:指定要使用的指纹识别级别。

要获取完整的选项列表,可以使用以下命令运行 Graphw00F:

python3 graphw00f.py -h
结论

Graphw00F 是一个方便且易于使用的指纹识别工具,可帮助程序员快速识别给定 GraphQL 端点所使用的实现。该工具提供了多种自定义选项和指纹识别级别的支持,可根据需要进行自定义。