如何使用GraphCrawler测试GraphQL节点的安全
字数 734 2025-08-12 11:34:37

GraphCrawler工具使用指南:GraphQL节点安全测试

工具概述

GraphCrawler是一款功能强大的自动化安全测试工具,专门用于对GraphQL节点进行安全测试。该工具基于Escape Technology的Graphinder工具进行开发,能够自动发现和评估GraphQL节点的安全状况。

工具运行机制

  1. 节点发现阶段

    • 使用Graphinder进行GraphQL节点搜索
    • 执行子域名枚举
    • 进行热门目录搜索
  2. 分析阶段

    • 检测变异选项是否启用
    • 检查可用的敏感查询(如用户、文件等)
    • 识别是否为Apollo Server
    • 如果是Apollo Server,则运行Clairvoyance进行暴力破解
  3. 评估阶段

    • 对目标节点给出安全评级(1-10分,10分为高危)

环境要求

  1. 基础环境

    • Python 3
    • Docker
  2. 依赖安装

    • 使用pip安装所有Python依赖
    • 从google-10000-english获取字典文件

安装步骤

  1. 克隆项目仓库:

    git clone https://github.com/gsmith257-cyber/GraphCrawler.git
    
  2. 进入项目目录:

    cd GraphCrawler
    
  3. 安装依赖:

    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

注意事项

  1. 使用前确保已安装所有依赖
  2. 对于Apollo Server节点,工具会自动进行暴力破解
  3. 输出文件默认保存为schema.json
  4. 可根据需要自定义请求头进行测试
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获取字典文件 安装步骤 克隆项目仓库: 进入项目目录: 安装依赖: 使用方法 基本命令格式: 参数说明: -u :指定目标GraphQL节点的URL -o :指定输出文件名(可选,默认为schema.json) -a :指定请求头(可选) 输出结果 工具执行后会生成包含以下信息的输出: 目标节点的安全评级(1-10分) 发现的敏感查询 变异选项状态 其他安全相关发现 许可证 本项目采用MIT开源许可证协议。 项目地址 GitHub仓库: GraphCrawler 注意事项 使用前确保已安装所有依赖 对于Apollo Server节点,工具会自动进行暴力破解 输出文件默认保存为schema.json 可根据需要自定义请求头进行测试