阿一网络安全学院作业之 实验室:意外暴露私有 GraphQL 字段

提⽰需要管理员登录后台删掉carlos⽤⼾.登录接⼝是⽤graphql制作的
输⼊任意凭据登录转到http历史记录
发现query字段和graphql经典格式,http历史记录也发现了路径
https://0a0500f704bfda0583125bdc006a009b.web-security-academy.net/graphql/v1
直接放给 InQL 分析
修改id为1,获取到管理员凭据
使⽤管理员凭据登录,删除carlos⽤⼾
实验室:查找隐藏的 GraphQL 端点

进⼊靶场,找不到任何graphql字样,发现路径api正常访问
⼿动测试 api/ 路径:
构造请求 url/api?query=query{__typename} 返回query,证实
查询之所以有效,是因为每个GraphQL端点都有⼀个名为 __typename 的保留字段,该字段以字符串形
式返回查询对象的类型。
继续构造查询:
根据提⽰,发现存在内省 __schema __type 的过滤,这⾥可以考虑⽤ 空格 逗号 等符号来做绕过:
继续构造:
此处发现⽆法绕过,但是在测试过程中发现 回车( %0a 可以:
从响应中注意到,内省是不允许的
可能是根据正则匹配禁⽤_schema来避免内省查询,⽽graphql对换⾏不敏感,构造换⾏,成功绕过
修改后继续发送
可以看到查询成功。
通过搜索发现存在 username 字段:
复制⽹址并利⽤InQL⼯具加载
得到
编码后发送
根据报错将id改为1继续编码发送
可以得到⽤⼾信息
根据题⽬要删除其中⼀个⽤⼾,继续寻找删除功能的字段:
接下来需要查询到carlos⽤⼾的id(需编码)
通过下⾯的接⼝遍历获取到caros的id
实验室:绕过 GraphQL 暴⼒破解保护

随便输⼊⼀个凭据登录进去,然后在 Burp 中,转到 HTTP 历史记录
可以看到登录请求是作为 GraphQL 突变发送的。
将请求放到inql,解析json获得内省数据
接下来利⽤实验室给的脚本(做了⼀些修改)在控制台中粘贴然后回⻋,⽣成的密码就在 剪贴板 中了
carlos账号密码为
.
实验室:通过 GraphQL 执⾏ CSRF 漏洞利⽤
使⽤实验室给的凭据登录,进⼊修改邮箱界⾯,填写任意邮箱
然后转到HTTP历史记录查看
但是由于请求限制,⽆法测试csrf,更改为 GET 尝试
复制HTML-打开实验室漏洞利⽤场景-发送给受害⼈-成功
我失败了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值