如何使用GraphCrawler测试GraphQL节点的安全
字数 734 2025-08-12 11:34:37
GraphCrawler工具使用指南:GraphQL节点安全测试
工具概述
GraphCrawler是一款功能强大的自动化安全测试工具,专门用于对GraphQL节点进行安全测试。该工具基于Escape Technology的Graphinder工具进行开发,能够自动发现和评估GraphQL节点的安全状况。
工具运行机制
-
节点发现阶段:
- 使用Graphinder进行GraphQL节点搜索
- 执行子域名枚举
- 进行热门目录搜索
-
分析阶段:
- 检测变异选项是否启用
- 检查可用的敏感查询(如用户、文件等)
- 识别是否为Apollo Server
- 如果是Apollo Server,则运行Clairvoyance进行暴力破解
-
评估阶段:
- 对目标节点给出安全评级(1-10分,10分为高危)
环境要求
-
基础环境:
- Python 3
- Docker
-
依赖安装:
- 使用pip安装所有Python依赖
- 从google-10000-english获取字典文件
安装步骤
-
克隆项目仓库:
git clone https://github.com/gsmith257-cyber/GraphCrawler.git -
进入项目目录:
cd GraphCrawler -
安装依赖:
pip3 install -r requirements.txt
使用方法
基本命令格式:
python graphCrawler.py -u https://test.com/graphql/api -o <fileName> -a "<headers>"
参数说明:
-u:指定目标GraphQL节点的URL-o:指定输出文件名(可选,默认为schema.json)-a:指定请求头(可选)
输出结果
工具执行后会生成包含以下信息的输出:
- 目标节点的安全评级(1-10分)
- 发现的敏感查询
- 变异选项状态
- 其他安全相关发现
许可证
本项目采用MIT开源许可证协议。
项目地址
GitHub仓库:GraphCrawler
注意事项
- 使用前确保已安装所有依赖
- 对于Apollo Server节点,工具会自动进行暴力破解
- 输出文件默认保存为schema.json
- 可根据需要自定义请求头进行测试