ソース:
訳:
ターゲットは、いくつかの資格情報が割り当てられているステージング環境でした。
ターゲットが「stage.application.hunt」だったと仮定します。
これは React を使用して構築された基本的な SPA であり、バックエンドは NodeJS であると思われます。
プログラムに招待されて最初にやったことは、
- メールアドレスをリセットし、パスワードを取得してログイン
- [ターゲット] -> [スキャン] -> [Burp suiteでクロール] を選択
- ウェブサイトで見つけたすべてのボタンをクリック
Burpsuite でのトラフィックの分析
すべてのボタンをタップし、アプリケーションのすべてのページにアクセスした後、トラフィックを分析するために burpsuite に切り替えました。 いくつかの行き詰まりを経て、「 /api/path/data 」へのPATCHリクエストを見つけました。
以下の画像に示すように、リクエスト本文に言語設定が含まれていました。
ファジング
このエンドポイントで基本的なファジングを試してみました。
そして、下の画像のように「500 Internal Server Error」が発生するたびに 😞
最後の試みとして他のエンドポイントに移動しようとしていたので、空の JSON 文字列 `{}` を試しましたが、エラーメッセージが返されました 👀
エラーを適切にフォーマットした後、Bearer eyXXSx という認証ヘッダーが含まれていることがわかりました。
また、リクエストの送信先アドレスも含まれており、それは 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 というもので。
ドキュメントページにトークンを入力すると、そのトークンで利用可能なすべての権限が表示されました。
ユーザーデータと、ユーザー、アプリケーションのリスト、ユーザーの更新などの他のエンドポイントを取得しようとしましたが、すべてうまくいきました。
これはステージング アプリケーションでしたが、約 300 人のユーザーが含まれており、そのほとんどが user@company.com の 電子メールでした。
バックエンドでは、ユーザーのリクエストが最初にオブジェクトにアンマーシャルされ、同じオブジェクトを使用して管理 API にリクエストが送信され、ユーザー データが更新されたと思います。
以前に無効な JSON を試したときはアンマーシャリングが失敗したため失敗しましたが、空の JSON を送信するとうまくいき、管理 API がエラー 400 ステータスを返しました。
ほなほな。