ソース:
脆弱性:IDOR
訳:
さて、ターゲットはプライバシー保護のため非公開だったので、target.com とすること。目標は、個人または組織がオンライン コミュニティを作成および管理できるプラットフォームで。 コミュニティ メンバーを構築、組織し、参加するためのさまざまなツールと機能を提供し。 ターゲットの主要な機能には次のようなものがあります。
- コミュニティの作成: ブランドや特定のトピックに合わせてカスタマイズされたオンライン コミュニティを簡単に作成できます。
- ディスカッション フォーラム: メンバーが会話し、アイデアを共有し、相互に交流できるディスカッション フォーラムを提供します。
- コンテンツの共有: メンバーは、ブログ投稿、画像、コミュニティのトピックに関連する関連リンクなどのコンテンツを共有できます。
- ロールの割り当て: コミュニティ内で管理者、モデレーター、通常のメンバーなどのメンバーのロールを設定できます。
- アクティビティ監視: メンバーのアクティビティを監視し、コミュニティの進行状況を追跡できます。
- 統合: Target.com は、組織が使用する他のソフトウェアまたはサービスとの統合を提供することがよくあります。
そこで、target.com にアクセスして、アカウントの登録やアカウントへのログインなどの基本的な作業を行い。 自分の組織を作成し、任意のユーザーをその組織に招待できることがわかり。そこで、「laplace」という名前の組織を作成し、そのサブドメイン「laplace.targetplatform.com」を受け取り。その後、私は被害者として別のアカウントを作成し。私の被害者のアカウントにはサブドメイン「victimlaplace.targetplatform.com」がありました。
被害者のページを探索しているときに、 https://victimlaplace.targetplatform.com/member/{randomUniqID} のような URL を使用してメンバー ページにアクセスできることに気付きました。 このランダムUniqIDをメモ帳にコピーし。
被害者のメンバーページのスクリーンショット
次に、攻撃者のアカウントにアクセスし、Insecure Direct Object Reference (IDOR) の脆弱性を確認しながらアカウントを編集し。
プロファイル編集時のGraphQLリクエスト
私の注意を引いたGraphQLリクエストのIDパラメータ。 ID 値を以前に保存した被害者の ID に置き換えてリクエストを送信し。
上記のリクエストからの応答
応答では、被害者のアカウント名が変更されており、IDOR の脆弱性を示しているため、リクエストが成功したことが確認され。
しかし、それはまだ完了していませんで。
応答の中で、被害者の電子メールが含まれている電子メールパラメータに気づき。攻撃者の電子メールを含むリクエスト本文に「email」という新しいパラメータを追加したらどうなるでしょうか?
そこで、攻撃者のアカウントに戻り、いくつかの情報を変更し、「email」パラメータを追加してリクエストを送信しました。
email という新しいパラメータをリクエスト本文に追加します。
そのリクエストを送信すると、レスポンスは次のようになります。
newEmail という新しいパラメータが表示されます
応答により、攻撃者の電子メール値を含む「newEmail」という新しいパラメータが明らかになりました。 次に、被害者のアカウントを確認したところ、攻撃者のメールアドレスに確認メールが送信されていたことがわかり。
確認メールはすでに新しいメールアドレスに送信されています
そこで、攻撃者のメールアドレスにアクセスし、確認メールの URL にアクセスしました。 URLの確認はこんな感じで。
私はホスト ヘッダーを被害者のサブドメイン「victimlaplace.targetplatform.com」に変更し、リクエストを送信しました。 このアクションにより、私は攻撃者のアカウントから自動的にログアウトされました。 メールアドレスが正常に変更されたかどうかを確認するために被害者のアカウントに戻りました。
メールアドレスが正常に変更されました
次に、被害者のアカウントのパスワードをリセットしようとしたところ、ログインに成功し、被害者のアカウントと組織全体への完全なアクセス権を取得しました。
さらに、社内チームが管理している「blog.target.com」というサブドメインも発見しました。 会員ページにアクセスし、オーナー会員IDを取得しました。 これにより、内部アカウントにアクセスし、組織全体を制御できるようになりました。
ほなほな。