Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
GraphQLer — ☸首个具备依赖感知能力的GraphQL API测试工具! | Kitploit
工具/GitLabGitLab/omar2535/graphqler
漏洞分析API安全测试Web安全模糊测试
GitLabomar2535/graphqler

GraphQLer

☸首个具备依赖感知能力的GraphQL API测试工具!

查看仓库网站
2年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

唯一一款**依赖感知**的 GraphQL API 测试工具!

python3.12 Maintainability lint tests_status security

GraphQLer 是一款前沿工具,专为动态测试 GraphQL API 而设计,注重适应性。它提供一系列高级功能,可简化测试流程并确保对 GraphQL API 进行可靠分析。GraphQLer 能高效管理已创建的对象和资源,有效识别对象、查询和变更之间的依赖关系,并根据 API 的限制动态纠正查询中的错误。GraphQLer 已被用于在生产级 GraphQL API 中发现大量漏洞!

Video Demo

主要功能

  • 依赖感知:根据依赖关系执行查询和变更!
  • 动态测试:跟踪测试过程中创建的资源
  • 错误纠正:尝试修复请求,以便 GraphQL API 接受它们
  • 统计收集:将结果输出到整齐的文件中
  • 易于使用:你只需要端点,以及可能的身份验证令牌 😁

快速开始

要开始使用 GraphQLer,请查看安装指南。

使用方式

root@kitploit:~
❯ python3 main.py --help
usage: main.py [-h] [--compile] [--fuzz] [--run] --path PATH [--auth AUTH] --url URL

options:
  -h, --help   show this help message and exit
  --compile    runs on compile mode
  --fuzz       runs on fuzzing mode
  --run        run both the compiler and fuzzer (equivalent of running --compile then running --fuzz)
  --path PATH  directory location for saved files and files to be used from
  --auth AUTH  authentication token Example: 'Bearer arandompat-abcdefgh'
  --url URL    remote host URL

以下步骤说明如何使用该程序测试你的 GraphQL API。使用过程分为两个阶段:编译和模糊测试。

  • 编译模式:此模式负责对给定 API 执行自省查询并生成依赖图。
  • 模糊测试模式:此模式负责遍历依赖图并向 API 发送测试请求。

此外还有第三种模式,称为运行模式,它把编译和模糊测试合并为一个命令。

编译模式

root@kitploit:~
(.env) python main.py --compile --url <URL> --path <SAVE_PATH>

编译完成后,你可以在 <SAVE_PATH>/compiled 中查看编译结果。此外,还会生成一张名为 dependency_graph.png 的图表供检查。编译后的 .yaml 文件中的任何 UNKNOWNS 均可手动标记;但即使不标记,模糊测试器仍会运行它们,只是不使用依赖链。

模糊测试模式

root@kitploit:~
(.env) python main.py --fuzz --url <URL> --path <SAVE_PATH>

模糊测试期间,控制台会记录与 GraphQL API 相关的统计数据以及正在进行的请求计数。所有请求返回码都会写入 <SAVE_PATH>/stats.txt。模糊测试期间的所有日志都保存在 <SAVE_PATH>/logs/fuzzer.log 中。日志文件会准确告诉你哪些请求发送到了哪些端点,以及响应是什么。这些信息可用于进一步的结果分析。

运行模式

同时运行编译模式和模糊测试模式。

root@kitploit:~
(.env) python main.py --run --url <URL> --path <SAVE_PATH>

高级功能

你还可以修改 constants.py 文件中的一些变量。它们对应 GraphQLer 中实现的特定功能,你可以根据需求进行调整。

下载工具
变量名变量描述变量类型默认值
MAX_LEVENSHTEIN_THRESHOLD对象与对象 ID 之间的莱文斯坦距离整数20
MAX_OBJECT_CYCLES同一对象在同一次查询/变更中可被实例化的最大次数整数3
MAX_OUTUPT_SELECTOR_DEPTH查询/变更输出可扩展的最大深度(例如无限递归选择器的情况)整数3
USE_OBJECTS_BUCKET是否存储对象 ID 以供将来使用布尔值True
USE_DEPENDENCY_GRAPH是否使用依赖感知功能布尔值True
MAX_FUZZING_ITERATIONS在每个节点上运行的最大模糊测试载荷数量整数5
MAX_TIME最大运行时间整数3600