GraphCrawler是一款功能强大的自动化安全测试工具,在该工具的帮助下,广大研究人员可以轻松对任意GraphQL节点进行安全测试。
GraphCrawler基于Escape Technology强大的Graphinder工具来进行GraphQL节点搜索。我们只需要将其指向一个域名,并添加-e选项,Graphinder便会对目标GraphQL节点执行子域名枚举和热门目录搜索。接下来,所有的扫描结果都将会传递给GraphCrawler以进行更加深入地分析。
随后,GraphCrawler将检测是否启用了变异选项,并检查任何可用的敏感查询,例如用户和文件等。如果目标节点是否是Apollo Server,如果是的话,则运行Clairvoyance实现暴力破解。工具会对目标节点给出一个安全评级(1-10),10分为高危。
1、Python3 2、Docker 3、使用pip命令安装所有的Python依赖 4、从google-10000-english获取字典文件
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3环境。接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/gsmith257-cyber/GraphCrawler.git
(向右滑动、查看更多)
接下来,切换到项目目录,并通过pip3命令和项目提供的requirements.txt文件安装该工具所需的依赖组件:
cd GraphCrawler
pip3 install -r requirements.txt
python graphCrawler.py -u https://test.com/graphql/api -o <fileName> -a "<headers>"
(向右滑动、查看更多)
我们在使用该工具的时候,可以不指定输出选项,默认配置下工具会将输出结果保存到schema.json文件中。
本项目的开发与发布遵循MIT开源许可证协议。
GraphCrawler:
https://github.com/gsmith257-cyber/GraphCrawler
https://github.com/Escape-Technologies/graphinder https://github.com/nikitastupin/clairvoyance https://gitlab.com/dee-see/graphql-path-enum/ https://github.com/first20hours/google-10000-english