"GraphQL黑客:如何使用简单的探测获得$1000赏金"
一颗小胡椒2023-10-16 17:16:51
背景介绍
本文将分享国外一位白帽子对于多重身份验证功能实施渗透测试时的一些经验,希望能对你有所启发。
什么GraphQL?
GraphQL 是 API 的一种查询语言,允许客户端准确请求他们需要的数据,它由 Facebook 开发,近年来作为 REST API 的替代品变得愈加流行。
GraphQL 的主要优点之一是它的灵活性,因为它允许客户端在单个请求中请求多个资源,并接收与其请求的确切形状相匹配的响应。
这意味着客户不必担心数据获取过多或不足,因为他们可以准确指定他们需要的内容,此外,GraphQL 拥有强大且活跃的开发人员社区,不断致力于改进该语言及其工具。
凭借其众多优势和充满活力的支持者社区,GraphQL 如此受欢迎也就不足为奇了。
GraphQL Introspection(自省)查询
GraphQL 自省查询是一项功能,使用户能够通过查询 API 本身来发现 GraphQL API 功能,这包括有关 API 支持的类型、字段和查询的信息。
通过使用内省查询,开发人员可以了解有关 GraphQL API 的结构和功能的更多信息,而无需参考外部文档。当使用具有许多不同类型和字段的大型复杂 API 时,这非常有用。
为了优化搜索引擎,在段落中包含相关关键字非常重要,例如“GraphQL”、“query”、“API”、“fields”和“queries”,此外,使用清晰简洁的语言有助于提高可读性,从而使内容更易被使用者所理解。
如何在GraphQL 中执行自省查询
尝试在目标上发送带有以下内容的POST请求,执行 GraphQL 自省查询的完整请求:
{"query": "query IntrospectionQuery{__schema{queryType{name}mutationType{name}subscriptionType{name}types{...FullType}directives{name description locations args{...InputValue}}}}fragment FullType on __Type{kind name description fields(includeDeprecated:true){name description args{...InputValue}type{...TypeRef}isDeprecated deprecationReason}inputFields{...InputValue}interfaces{...TypeRef}enumValues(includeDeprecated:true){name description isDeprecated deprecationReason}possibleTypes{...TypeRef}}fragment InputValue on __InputValue{name description type{...TypeRef}defaultValue}fragment TypeRef on __Type{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name ofType{kind name}}}}}}}}"} generic 746 Bytes © Guge's Blog

一颗小胡椒
暂无描述