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

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

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

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

工具目录

分类

查看所有分类
Loading categories
graphql-cop — 轻量级Python工具,用于自动化安全审计GraphQL API。可检测错误配置、信息泄露以及拒绝服务漏洞,并提供cURL复现命令。 | Kitploit
工具/GitHubGitHub/dolevf/graphql-cop
漏洞扫描器API安全测试Web安全渗透测试
GitHubdolevf/graphql-cop

graphql-cop

轻量级Python工具,用于自动化安全审计GraphQL API。可检测错误配置、信息泄露以及拒绝服务漏洞,并提供cURL复现命令。

查看仓库
6841019个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

GraphQL Cop - GraphQL 安全审计工具

GraphQL Cop

关于

GraphQL Cop 是一个用于对 GraphQL API 执行常见安全测试的轻量级 Python 工具。它非常适合在 GraphQL 中进行 CI/CD 检查,覆盖了 GraphQL 中值得关注的安全问题。

GraphQL Cop 允许你在发现漏洞时通过提供 cURL 命令来复现结果。

依赖

  • Python3
  • Requests 库

检测项

  • 别名重载(DoS)
  • 批量查询(DoS)
  • 基于 GET 的查询(CSRF)
  • 使用 URL 编码负载的基于 POST 的查询(CSRF)
  • GraphQL 跟踪/调试模式(信息泄露)
  • 字段重复(DoS)
  • 字段建议(信息泄露)
  • GraphiQL(信息泄露)
  • 内省(信息泄露)
  • 指令重载(DoS)
  • 利用内省的循环查询(DoS)
  • 基于 GET 方法的变更支持(CSRF)

安装

执行以下命令来安装依赖。

root@kitploit:~
python3 -m venv path/to/venv
source path/to/venv/bin/activate
python3 -m pip install -r requirements.txt

第一条命令在 path/to/venv 指定的目录中创建一个虚拟环境。 第二条命令激活该虚拟环境。 最后一条命令安装 requirements.txt 中列出的所有 Python 包。

用法

root@kitploit:~
$ python3 graphql-cop.py -h
Usage: graphql-cop.py -t http://example.com -o json

Options:
  -h, --help            显示此帮助信息并退出
  -t URL, --target=URL  目标 URL(包括路径)——如果未提供 GraphQL 路径,GraphQL Cop 将遍历一系列常见 GraphQL 路径
  -H HEADER, --header=HEADER
                        向请求附加标头 '{"Authorization": "Bearer eyjt"}' —— 使用多个 -H 添加更多标头
  -o FORMAT, --output=FORMAT
                        输出格式:json
  -e EXCLUDED_TESTS, --excluded-tests=EXCLUDED_TESTS
                        排除特定测试
  -l, --list-tests      列出可用的测试
  -f, --force           当无法检测到 GraphQL 时强制扫描
  -d, --debug           附加一个包含测试名称的标头以进行调试
  -x PROXY, --proxy=PROXY
                        HTTP(S) 代理 URL,格式为 http://user:pass@host:port
  -w WORDLIST, --wordlist=WORDLIST
                        自定义 GraphQL 端点列表的路径
  -v, --version         打印当前版本并退出
  -T, --tor             通过 Tor 网络发送请求(确保 Tor 已运行且配置正确)

测试网站

root@kitploit:~
$ python3 graphql-cop.py -t https://mywebsite.com/graphql

[HIGH] 内省查询已启用(信息泄露)
[LOW] GraphQL Playground UI(信息泄露)
[HIGH] 允许 100 个以上别名的别名重载(拒绝服务)
[HIGH] 允许包含 1000 个以上相同重复字段的查询(拒绝服务)

排除特定测试

root@kitploit:~
$ python3 graphql-cop.py -t https://mywebsite.com/graphql -e field_duplication

[HIGH] 内省查询已启用(信息泄露)
[LOW] GraphQL Playground UI(信息泄露)
[HIGH] 允许 100 个以上别名的别名重载(拒绝服务)
[HIGH] 允许包含 1000 个以上相同重复字段的查询(拒绝服务)

测试网站并输出可解析的 JSON 格式及 cURL 复现命令

root@kitploit:~
python3 graphql-cop.py -t https://mywebsite.com/graphql -o json

 {'curl_verify': 'curl -X POST -H "User-Agent: graphql-cop/1.2" -H '
                 '"Accept-Encoding: gzip, deflate" -H "Accept: */*" -H '
                 '"Connection: keep-alive" -H "Content-Length: 33" -H '
                 '"Content-Type: application/json" -d \'{"query": "query { '
                 '__typename }"}\' \'http://localhost:5013/graphql\'',
  'description': '跟踪功能已启用',
  'impact': '信息泄露',
  'result': False,
  'severity': 'INFO',
  'color': 'green',
  'title': '跟踪模式'},
 {'curl_verify': 'curl -X POST -H "User-Agent: graphql-cop/1.2" -H '
                 '"Accept-Encoding: gzip, deflate" -H "Accept: */*" -H '
                 '"Connection: keep-alive" -H "Content-Length: 64" -H '
                 '"Content-Type: application/json" -d \'{"query": "query { '
                 '__typename @aa@aa@aa@aa@aa@aa@aa@aa@aa@aa }"}\' '
                 "'http://localhost:5013/graphql'",
  'description': '查询中允许出现多个重复指令',
  'impact': '拒绝服务',
  'result': True,
  'severity': 'HIGH',
  'color': 'red',
  'title': '指令重载'}]

通过代理(例如 Burp Suite 监听于 127.0.0.1:8080)并使用自定义标头(例如 Authorization)测试网站:

root@kitploit:~
$ python3 graphql-cop.py -t https://mywebsite.com/graphql --proxy=http://127.0.0.1:8080 --header '{"Authorization": "Bearer token_here"}'

[HIGH] 内省查询已启用(信息泄露)
[LOW] GraphQL Playground UI(信息泄露)
[HIGH] 允许 100 个以上别名的别名重载(拒绝服务)
[HIGH] 允许包含 1000 个以上相同重复字段的查询(拒绝服务)

Docker 设置与使用

前提条件

  • 你的机器上已安装 Docker。

构建 Docker 镜像

  1. 克隆仓库:
root@kitploit:~
git clone https://github.com/dolevf/graphql-cop.git
cd graphql-cop
  1. 构建 Docker 镜像:
root@kitploit:~
docker build -t graphql-cop:latest .

运行 Docker 容器

你可以按如下方式运行 Docker 容器并向 graphql-cop 脚本传递参数:

root@kitploit:~
docker run --rm -it graphql-cop:latest -t <GRAPHQL_ENDPOINT> -H '{"<HEADER_KEY>": "<HEADER_VALUE>"}'

示例

以下是运行容器的一个示例:

root@kitploit:~
docker run --rm -it graphql-cop:latest -t https://example.com/graphql -H '{"Authorization": "Bearer abc123xyz"}'

注意

要查看所有可用选项,请运行:

root@kitploit:~
docker run --rm -it graphql-cop:latest --help

故障排除

  1. 文件未找到错误:如果容器无法找到要执行的脚本,请确保仓库结构完整且 Dockerfile 已正确设置。
  2. 依赖问题:如果缺少依赖,请验证 requirements.txt 文件是否完整。
下载工具