Shikata Ga Nai

Private? There is no such things.

GraphQL

LAB: 非公開GraphQL投稿へのアクセス

Hello there, ('ω')ノ ラボの目的 このラボでは、GraphQL APIが抱える情報漏洩の脆弱性を利用して、「非公開ブログ投稿」のパスワードを取得します。 問題の概要 ブログ投稿はGraphQLエンドポイント /graphql/v1 を通じて取得される。 クエリのレスポンス…

GraphQLのスキーマ情報を特定する方法

Hello there, ('ω')ノ GraphQL APIの脆弱性診断を行う際には、最初にその内部構造(スキーマ)を特定することが極めて重要です。スキーマ情報を取得できれば、どんなクエリが可能か、どのようなデータが取得可能か、脆弱な箇所の特定に大きく貢献します。 ️ …

GraphQLの引数を利用した未公開データの取得手法

Hello there, ('ω')ノ 攻撃手法:未サニタイズの引数を悪用する GraphQL APIの中には、クエリの引数(arguments)を使って直接データにアクセスする仕組みを持つものがあります。このような設計では、アクセス制御が不十分な場合、存在するが表示されていな…

GraphQLエンドポイントの見つけ方と検出テクニック

Hello there, ('ω')ノ GraphQLエンドポイントとは? GraphQLはすべてのクエリを1つのエンドポイント(URL)に集約する仕組みになっています。そのため、このエンドポイントを特定できれば、すべてのデータ操作の入り口を発見したことになります。 ️ エンド…

GraphQL APIの脆弱性とセキュリティ診断の基本

Hello there, ('ω')ノ 概要 GraphQLは、クライアントが必要なデータを効率よく取得できる柔軟なAPIですが、その反面、設計ミスや実装ミスが原因で深刻な脆弱性を招くことがあります。 よくある脆弱性 1. イントロスペクション(Introspection)の有効化 Gr…