2021 | 中国科学技术大学第八届信息安全大赛 | Web
图之上的信息
题目¶
小 T 听说 GraphQL 是一种特别的 API 设计模式,也是 RESTful API 的有力竞争者,所以他写了个小网站来实验这项技术。
你能通过这个全新的接口,获取到没有公开出来的管理员的邮箱地址吗?
解题思路¶
- 使用测试账号登录:
guest
/guest
- 登录后提示
Flag 是 admin 的邮箱
,界面只有退出
按钮,GraphQL 接口呢?(ŏωŏ)
-
查看网络请求,发现了向 GraphQL 接口发送的 POST 请求
URL http://202.38.93.111:15001/graphql Method POST Data {"query":"{ notes(userId: 2) { id\ncontents }}"}
Response {"data":{"notes":[{"id":2,"contents":"Flag 是 admin 的邮箱。"}]}}
-
要使用 GraphQL 必须知道可查询的字段,首先了解一下接口可用的
schema
-
类型
GNote
和GUser
是需要使用的
-
要获得 admin 的邮箱,邮箱字段应该与用户相关,查看类型
GUser
的详细信息 -
类型字段获取完毕!接下来看看可用查询
-
guest
用户id
为 2,推断admin
用户的id
为 1 -
成功获得 Flag!
最后更新:
2021年10月30日 16:07:16
Contributors: