ソース:
訳:
最近、プライベートのバグ報奨金プログラムでハンティングしているときに、ターゲットの Auth0 Management API への完全な API アクセスを取得し。
ターゲットは、いくつかの資格情報が割り当てられているステージング環境で。
ターゲットが「stage.application.hunt」だったと仮定して。
これは React を使用して構築された基本的な SPA であり、バックエンドは NodeJS であると思われ。
プログラムに招待されて最初にやったことは、
- メールアドレスをリセットし、パスワードを取得してログインして
- [ターゲット] -> [スキャン] -> [げっぷスイートでクロール] を選択して
- ウェブサイトで見つけたすべてのボタンをクリックして
Burpsuite でのトラフィックの分析
すべてのボタンをタップし、アプリケーションのすべてのページにアクセスした後、トラフィックを分析するために burpsuite に切り替え。
いくつかの行き詰まりを経て、「 PATCH 」への 「 /api/path/data 」リクエストを見つけ。
以下の画像に示すように、リクエスト本文に言語設定が含まれていました。
言語設定リクエストの更新
ファジング
このエンドポイントで基本的なファジングを試して。
そして、下の画像のように「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 の 電子メールで。
ほなほな。