使用BatchQL对GraphQL安全性进行检测

VSole2021-10-17 13:08:11

关于BatchQL

BatchQL是一款功能强大的GraphQL的安全审计工具,可以通过执行Batch GraphQL查询和输入变异数据来了解目标GraphQL应用的安全情况。该工具基于Python开发,其实现代码并不复杂,因此欢迎社区的广大研究人员和开发人员贡献自己的代码。

检测内容

当前版本的BatchQL支持检测下列内容:

支持各类查询方式;
模式建议检测;
CSRF检测
基于查询名称的Batching;
基于查询JSON列表的Batching;

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/assetnote/batchql.git

工具使用

信息枚举

❯ python batch.py -e http://re.local:5000/graphiql -p localhost:8080Schema suggestions enabled. Use Clairvoyance to recover schema: https://github.com/nikitastupin/clairvoyanceCSRF GET based successful. Please confirm that this is a valid issue.CSRF POST based successful. Please confirm that this is a valid issue.Query name based batching: GraphQL batching is possible... preflight request was successful.Query JSON list based batching: GraphQL batching is possible... preflight request was successful.Most provide query, wordlist, and size to perform batching attack.

Batching攻击

首先,保存一个包含有目标GraphQL查询的文件,例如acc-login.txt:

mutation emailLoginRemembered($loginInput: InputRememberedEmailLogin!) {
  emailLoginRemembered(loginInput: $loginInput) {
    authToken {
      accessToken
      __typename
    }
    userSessionResponse {
      userToken
      userIdentity {
        userId
        identityType
        verified
        onboardingStatus
        registrationReferralCode
        userReferralInfo {
          referralCode {
            code
            valid
            __typename
          }
          __typename
        }
        __typename
      }
      __typename
    }
    __typename
  }
  }

接下来,运行下列命令来执行GraphQL Batching攻击:

❯ python batch.py --query acc-login.txt --wordlist passwords.txt -v '{"loginInput":{"email":"admin@example.com","password":"#VARIABLE#","rememberMe":false}}' --size 100 -e http://re.local:5000/graphiql -p localhost:8080

上述命令将实现下列内容:

1、从一个本地文件执行特定的请求:

--query acc-login.txt

2、指定一个字典:

--wordlist passwords.txt

3、指定变量输入(使用替换识别符):

-v {"loginInput":{"email":"admin@example.com","password":"#VARIABLE#","rememberMe":false}}

4、指定Batch大小:

--size 100

5、指定目标节点:

-e http://re.local:5000/graphiql

6、指定一个代理:

-p localhost:8080

项目地址

BatchQL:【点击阅读原文】

参考资料

https://blog.assetnote.io/2021/08/29/exploiting-graphql/

https://github.com/dolevf/Damn-Vulnerable-GraphQL-Application

https://lab.wallarm.com/graphql-batching-attack/

https://cheatsheetseries.owasp.org/cheatsheets/GraphQL_Cheat_Sheet.html#mitigating-batching-attacks

httpsgraphql
本作品采用《CC 协议》,转载必须注明作者和本文链接
有研究人员在安全测试时,绕过了 Cloudflare WAF 的 SQLi 过滤器,这意味着Cloudflare 安装没有正确配置,但Cloudflare目前还不认为这是个漏洞。虽如此,安全人员在为其应用程序部署安全保护时需要注意有关问题。对于试图绕过 WAF 的人来说,发现的些许漏洞也可能会派上用场。攻击者可以利用一种或多种技术(具体取决于最终应用程序)绕过某些 WAF 并通过滥用 SQLi 漏
BatchQL是一款功能强大的GraphQL的安全审计工具,可以通过执行Batch GraphQL查询和输入变异数据来了解目标GraphQL应用的安全情况。该工具基于Python开发,其实现代码并不复杂,因此欢迎社区的广大研究人员和开发人员贡献自己的代码。
当收到项目邀请时,白帽小哥注意到该目标在BugCrowd上已经两年多了,到目前为止已经发现了250+个漏洞,并支付了赏金奖励。GraphQL查询中的SQL注入:目标范围很大,但子域不在范围内。目标域类似target.*,因为它涵盖了广泛的 ccTLD。因此,在搜索子域或 ccTLD 域时,应确保使用组织名称进行搜索。的结果,经过过滤后,大约只有 64 个目标。
InfoWorld 公布了 2022 年最佳开源软件榜单。InfoWorld 的 2022 年 Bossie 奖旨在表彰年度最重要和最具创新性的应用程序开发、devops、数据分析和机器学习工具。Redwood 允许针对各种部署环境,包括 Vercel 和 Netlify 等无服务器平台。它允许拖放组件来构建仪表板、使用 JavaScript 对象编写逻辑并连接到任何 API、数据库或 GraphQL 源。Spinnaker 是一个持续交付平台,它定位于将产品快速且持续的部署到多种云平台上。Spinnaker 主要特性:配置一次,随时运行;随地部署,集中化管理;开源。
武装你的BurpSuite
2022-03-18 15:38:20
0x01前言BurpSuite是广大安全人员使用率最高的一款工具了,通过对数据包的修改,重放往往能发现很多安
01 时间轴 2021-01-23 蚂蚁安全非攻实验室 @fatansyC4t 向Apache官方报告了Apache Skywalking远程代码执行漏洞 2021-02-04 2021-02-07 阿里云安全发布漏洞风险提示。经过源码分析,发现两次sql注入漏洞修复并不完善,仍存在一处sql注入漏洞。 Skywalking默认配置下使用的数据库为h2,且使用sa权限启动。进一步分析LINK_SCHEMA底层源码,发现代码中存在一处类加载过程,而这个类就是sql函数的第二个参数,用户可控。03 漏洞证明 04 修复建议 1、升级Apache Skywalking 到最新的 版本。
云原生API安全:背景、态势与风险防护
Arsenal是一个功能强大且使用简单的Shell脚本,该工具专为漏洞赏金猎人设计,在该工具的帮助下,我们可以轻松在自己环境中安装并部署目前社区中功能最为强大的网络侦查工具、漏洞扫描工具和其他安全研究工具。
最全的Python开发库!
2022-07-01 08:24:52
Web 框架主要用于网站开发,可以实现数据的交互和业务功能的完善。使用 Web 框架进行 网站开发的时候,在进行数据缓存、数据库访问、数据安全校验等方面,不需要自己再重新实现,而是将业务逻辑相关的代码写入框架就可以。
OWASP API安全 TOP10
2023-05-08 10:45:50
同时,API的广泛应用也为运维可见性、安全性提出了新的挑战。OWASP为强调API安全的重要性,在2019年首次提出了API Security Top 10。该更新内容进一步强调了API攻击场景与Web攻击的差异化,突出API权限管理、资产管理、业务风控及供应链问题。
VSole
网络安全专家