某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 服务器端主题(翻译)

  • 客户端主题(翻译)

  • 高级主题(翻译)

  • 扩展阅读(翻译)

  • 个人学习笔记

  • 实验室做题记录

    • 实验室做题记录
    • 服务器端

    • 客户端

    • 高级主题

      • 不安全的反序列化

      • GraphQL API漏洞

        • 学徒-访问私有GraphQL帖子
        • 从业者-意外暴露私有GraphQL字段
          • 题目
          • 实操
        • 从业者-查找隐藏的GraphQL端点
        • 从业者-绕过GraphQL暴力破解保护
        • 从业者-通过GraphQL执行CSRF漏洞利用
      • 服务端模板注入

      • Web缓存投毒

      • HTTP主机头攻击

      • HTTP请求走私

      • OAuth身份验证漏洞

      • JWT攻击

      • 原型链污染

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 高级主题
  • GraphQL API漏洞
carsaid
2023-11-07
目录

从业者-意外暴露私有GraphQL字段

# 实验室:意外暴露私有GraphQL字段

# 题目

此实验室的用户管理功能由 GraphQL 端点提供支持。该实验室包含一个访问控制漏洞,你可以通过该漏洞诱使 API 泄露用户凭据字段。

若要解决实验室问题,请以管理员身份登录并删除carlos账户。

我们建议你在尝试此实验之前安装 InQL 扩展。InQL 可以更轻松地在 Repeater 中修改 GraphQL 查询,并使你能够扫描 API 模式信息。

有关使用 InQL 的更多信息,请参阅在 Burp Suite 中使用 GraphQL (opens new window)。

实验室-从业者

意外暴露私有GraphQL字段 >>

- name: 实验室-从业者
  desc: 意外暴露私有GraphQL字段 >>
  avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
  link: https://portswigger.net/web-security/graphql/lab-graphql-accidental-field-exposure
  bgColor: '#001350'
  textColor: '#4cc1ff'
1
2
3
4
5
6

# 实操

点击 “ACCESS THE LAB” 进入实验室。

Not Found Image

一个博客站点。

启用 BurpSuite 代理并刷新网页,捕获有关于 GraphQL 的查询请求。

Not Found Image

在 HTTP 历史记录中看到一个眼熟的路径/graphql/v1,其中包含 GraphQL 查询。

Not Found Image

右键数据包,选择 “Generate queries with InQL Scanner”,将数据包转发至 InQL 扩展,并自动探测 GraphQL API 端点的内省,以获取 API 端点的模式信息。

Not Found Image

在目标站点的 GraphQL API 模式信息中,可以看到一个可疑查询对象getUser。

Not Found Image

复制整个getUser查询对象,并指定参数为id: 1。

query {
    getUser(id: 1) {
        id
        password
        username
    }
}
1
2
3
4
5
6
7

查看响应,发现了管理员账户的用户名和密码。

Not Found Image

访问登录界面,使用刚刚发现的管理员用户名和密码进行登录。

Not Found Image

登录成功,点击 “Admin panel” 进入管理界面。

Not Found Image

点击 “Delete” 删除 carlos 账户。

Not Found Image

删除成功,实验完成。

Not Found Image
编辑 (opens new window)
学徒-访问私有GraphQL帖子
从业者-查找隐藏的GraphQL端点

← 学徒-访问私有GraphQL帖子 从业者-查找隐藏的GraphQL端点→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式