How I got Access to a Company’s Auth0 Management API !! から学ぶ

ソース:

infosecwriteups.com

脆弱性API

 

訳:

最近、プライベートのバグ報奨金プログラムでハンティングしているときに、ターゲットの Auth0 Management API への完全な API アクセスを取得し。

ターゲットは、いくつかの資格情報が割り当てられているステージング環境で。
ターゲットが「stage.application.hunt」だったと仮定して。
これは React を使用して構築された基本的な SPA であり、バックエンドは NodeJS であると思われ。

プログラムに招待されて最初にやったことは、

 

  • メールアドレスをリセットし、パスワードを取得してログインして
  • [ターゲット] -> [スキャン] -> [げっぷスイートでクロール] を選択して
  • ウェブサイトで見つけたすべてのボタンをクリックして

 

Burpsuite でのトラフィックの分析

すべてのボタンをタップし、アプリケーションのすべてのページにアクセスした後、トラフィックを分析するために burpsuite に切り替え。
いくつかの行き詰まりを経て、「 PATCH への /api/path/data リクエストを見つけ。
以下の画像に示すように、リクエスト本文に言語設定が含まれていました。

 

言語設定リクエストの更新 

 

ファジング

このエンドポイントで基本的なファジングを試して。

  • ファジングリクエストメソッド
  • 無効な JSON の送信
  • コンテンツタイプの変更
  • ホスト、オリジンファジングなど

そして、下の画像のように「500 Internal Server Error」が発生するたびに 😞

 

内部サーバーエラー

 

脆弱性

最後の試みとして他のエンドポイントに移動しようとしていたので、空の JSON 文字列 `{}` を試しましたが、エラーメッセージが返されました 👀

 

500 ステータス コードとエラー メッセージ

 

エラーを適切にフォーマットした後、Authorization というHeader が `Bearer eyJxxxx` と含んでいることに気づき。
また、リクエストの送信先アドレスも含まれており、それはhttps://application.us.auth0.com/api/v2/users/auth0|652xx」 になり。

Google でこのエンドポイントを検索すると、auth0 管理 API ドキュメントにたどり着き、具体的には https://auth0.com/docs/api/management/v2/users/patch-users-by-id
ドキュメントページにトークンを入力すると、そのトークンで利用可能なすべての権限が表示され。 

 

eyJhbGci0iJSsfasfasgdsgsadhahadfhdfgadgsafsfhsdfuosfjadsdhfosafasfsfijsfad

→ {}  

(JWT)

 

Permissions

ユーザーデータと、ユーザー、アプリケーションのリスト、ユーザーの更新などの他のエンドポイントを取得しようとしましたが、すべてうまくいき。
これはステージング アプリケーションでしたが、約 300 人のユーザーが含まれており、そのほとんどが user@company.com の 電子メールで。 

 

ほなほな。