如何使用GraphCrawler测试GraphQL节点的安全
关于GraphCrawler
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
相关文章
- JSP JSTL <x:set>标签:保存XML节点
- 使用Neo4j构建功能强大的节点图(neo4j创建节点)
- 利用MSSQL遍历父节点的简便方法(mssql 遍历父节点)
- 测试Redis集群节点实现完美的可用性(测试redis集群节点)
- 节点Redis集群最低6个节点保障稳定运行(redis集群最少6个)
- 取数据使用Redis集群轻松获取数据从节点也可以读取(redis集群从节点能读)
- 搭建16节点Redis集群实现可靠数据存储(redis集群16节点)
- Redis集群节点扩展需要设置几个哨兵(redis要几个哨兵)
- 重启,Redis节点再次崛起(redis节点挂掉重启)
- 深入探索Redis节点如何查看数据(redis节点怎么看数据)
- 如何设置Redis节点(redis节点在哪里设置)
- 利用Redis节点实现高效的数据分片(redis节点分片)
- javascript获取网页中指定节点的父节点、子节点的方法小结
- jquery取子节点及当前节点属性值的方法