GraphQLmap 使用教程
1. 项目介绍
GraphQLmap 是一个用于与 GraphQL 端点进行交互的脚本引擎,主要用于渗透测试目的。它允许用户执行 GraphQL 查询、转储 GraphQL 模式、进行字段模糊测试等操作。GraphQLmap 是一个开源项目,托管在 GitHub 上,由 swisskyrepo 维护。
2. 项目快速启动
安装
首先,克隆 GraphQLmap 的 GitHub 仓库:
git clone https://github.com/swisskyrepo/GraphQLmap.git
进入项目目录并安装依赖:
cd GraphQLmap
python setup.py install
使用
启动 GraphQLmap 并连接到目标 GraphQL 端点:
graphqlmap -u https://yourhostname.com/graphql -v --method POST --headers '["Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZXh0Ijoibm8gc2VjcmV0cyBoZXJlID1QIn0.JqqdOesC-R4LtOS9H0y7bIq-M8AGYjK92x4K3hcBA6o"]'
3. 应用案例和最佳实践
转储 GraphQL 模式
使用 dump_new
命令转储 GraphQL 模式:
GraphQLmap > dump_new
执行 GraphQL 查询
编写并执行 GraphQL 查询:
GraphQLmap > [doctors(options: 1, search: "[\"lastName\": [\"$regex\": \"Admin\"]]")[firstName lastName id]]
字段模糊测试
使用 GRAPHQL_CHARSET
和 GRAPHQL_INCREMENT
进行字段模糊测试:
GraphQLmap > [doctors(options: 1, search: "[\"lastName\": [\"$regex\": \"AdmiGRAPHQL_CHARSET\"]]")[firstName lastName id]]
4. 典型生态项目
1. GraphiQL
GraphiQL 是一个用于探索和测试 GraphQL API 的交互式 IDE。它可以帮助开发者和渗透测试人员更好地理解和测试 GraphQL 端点。
2. Apollo Server
Apollo Server 是一个开源的、符合规范的 GraphQL 服务器,适用于各种 Node.js 环境。它与 GraphQLmap 结合使用,可以更好地进行 GraphQL 端点的测试和开发。
3. PostGraphile
PostGraphile 是一个自动生成 GraphQL API 的工具,基于 PostgreSQL 数据库。它可以帮助开发者快速构建 GraphQL 服务,并与 GraphQLmap 一起用于测试和优化。
通过以上模块的介绍和实践,您可以快速上手并深入了解 GraphQLmap 的使用和应用场景。