誰かからのブラウザメッセージを聞いているサイトはどの程度悪用可能ですか?
Iframeの問題が見つかったサイトで作業しています。ケースは、サイトAにサイトBのiframeがあり、サイトAがanywhereからの「メッセージ」をリッスンし、メッセージが届いたときに2つの異なるアクションを実行できる場合です。
これは、サイトEvilを設定し、サイトAのiframeを含め、任意のメッセージの送信を開始できることを意味します。たとえば、「javascript:alert(1)」は、上記のどちらの場合でもiframeコンテキストでjavascriptを実行します。これを私が働いている人々に報告する前に、これが大きな問題になるシナリオが必要です。そして、これがトリッキーになるのはここです。なぜなら、これが重大な問題になるシナリオを実際に思い付くことはできないからです。私の考えは:
しかし、これは私が思いつくことができる最高のものです、それで私の質問は、私は何かを完全に見落としましたか?グーグルで移動しても他のオプションはありません。
編集:
明らかに、これはサイトA(私が働いている)をサイトB(半ば知られている会社ですが)を介してXSSのために開きます。私が作ることについて考えているもう一つのポイントは、一体なぜ誰もがこのように何でもするのでしょうか?フォームを作成して送信し、受信したデータで回答しますか?このようにする理由がわからないのですが、良い人なら誰でもできますか?
EDIT2:
Site Evilにあるiframeを介してSite Aのコンテキストで任意のjavascriptを実行できたとしても、Same Origin Policyをバイパスする方法はないようです。したがって、この「脆弱性」については、ユーザーに任意のリンクをクリックさせることを攻撃者と異なるものにするものは何もありません。
「ハウツー」(エクスプロイト)は提供しませんが、
Referer
/Origin
HTTPヘッダーに基づいている場合など)。これを修正するために提案されたようにしてください:信頼できる受信ドメインのみを受け入れ、それらをフォームなどに入れる前にデータを検証します(本当にドメインやドメインにフォームを送信したくない場合を除いて、メッセージのデータに完全なURIは必要ありません)プロトコル)。
メッセージを送信してそのページ/フレームでJavaScriptを実行できる場合は、Cookieを取得してセッションを確実に乗っ取ることができます。
参照: JavaScriptを介してクロスドメイン投稿リクエストを送信する方法
ここでの最小要件は、管理するサーバーが必要であることです。 AJAXリクエストに対して生成されたレスポンスのAccess-Control-Allow-Origin
ヘッダーを設定できるように。