背景介紹

本文將分享國外一位白帽子對于多重身份驗證功能實施滲透測試時的一些經驗,希望能對你有所啟發。

什么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