
Graph Crawler は、あらゆる GraphQL エンドポイントに対応する最も強力な自動テストツールキットです。
新機能: Escape Technology の強力な Graphinder を使用してエンドポイントを自動検索できるようになりました。ドメインを指定して '-e' オプションを追加するだけで、Graphinder がサブドメインの列挙と一般的なディレクトリの検索を行い、GraphQL エンドポイントを見つけます。その後、GraphCrawler が引き継いで、見つかった各エンドポイントを処理します。スキーマをイントロスペクションできない場合は、'-s' オプションを使用して JSON ファイルとして提供できます。
GraphCrawler は、ミューテーションが有効かどうかを確認し、users や files などの機密性の高いクエリが利用可能かどうかをチェックし、また見つけた簡単なクエリをテストして認証が必要かどうかを確認します。
エンドポイントでイントロスペクションが有効でない場合、Apollo Server かどうかを確認し、Clairvoyance を実行してブルートフォースでサジェスチョンを取得し、スキーマを自分たちで構築しようと試みます。(詳細は Clairvoyance プロジェクトを参照してください。)その後、発見結果を 1〜10 で評価し、10 が最も重要と評価します。
スキーマをさらに詳しく調べたい場合は、graphql-path-enum を使用して、ユーザー ID やメールアドレスなどの特定のタイプへのパスを探すこともできます。
このツールが私にとってそうだったように、皆さんの時間も節約できれば幸いです。
python graphCrawler.py -u https://test.com/graphql/api -o <fileName> -a "<headers>"
██████╗ ██████╗ █████╗ ██████╗ ██╗ ██╗ ██████╗██████╗ █████╗ ██╗ ██╗██╗ ███████╗██████╗
██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██║ ██║██╔════╝██╔══██╗██╔══██╗██║ ██║██║ ██╔════╝██╔══██╗
██║ ███╗██████╔╝███████║██████╔╝███████║██║ ██████╔╝███████║██║ █╗ ██║██║ █████╗ ██████╔╝
██║ ██║██╔══██╗██╔══██║██╔═══╝ ██╔══██║██║ ██╔══██╗██╔══██║██║███╗██║██║ ██╔══╝ ██╔══██╗
╚██████╔╝██║ ██║██║ ██║██║ ██║ ██║╚██████╗██║ ██║██║ ██║╚███╔███╔╝███████╗███████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝╚═╝ ╚═╝
出力オプションは必須ではありません。デフォルトでは schema.json に出力されます。 2. Docker の場合 注意: graphcrawler はファイルを入力として必要としたり、出力を生成するオプションを使用するため、すべてのファイルを作業ディレクトリにまとめ、コンテナのパス /workspace にマウントすることを推奨します。すべての出力はそのマウントされたディレクトリに保存されます。
docker build -t graphcrawler:1.2 .
docker run -v /path_to_workspace:/workspace -it graphcrawler:1.2 -u https://test.com/graphql/api -o <filename> -a "<headers>"
単語リストは google-10000-english から