私はparent.com
からサードパーティのプラグインをiframeに埋め込むサイトをchild.com
と呼びましょう。 child.com
にXSSの脆弱性が見つかりました。
child.com
の埋め込みページには、同じドメインの別のページにPOSTするフォームが含まれています。フォームを送信することにより、この脆弱性を利用できます。 POSTリクエストをBurpでインターセプトし、それにペイロードを挿入します。その後、ペイロードが実行されます。
私の問題は、ペイロードがchild.com
ドメインのiframe内で実行されることです。私の目標はparent.com
を妥協することです(バグ報奨金を獲得するため)。この脆弱性を使用して何らかの方法でそれを達成することは可能ですか?たとえば、フォームを代わりにparent.com
に送信させることはできますか?
Iframeには、「sandbox」と呼ばれる特別なタグがあり、iframeのコンテンツの処理方法を設定します。そのタグを使用して、iframeが親と対話できるようにアクセス許可を細かく設定できます。通常、iframeは、別のドメインから読み込まれたときに親にどのように影響するかに関してかなり制限がありますが、allow-same-Origin、allow-scripts、allow-top-navigationなどの場合は、ケース固有の場合があります。それを悪用する方法。
[編集] iframe XSS攻撃のほとんどの場合、実際には親Webサイトに任意のコードを挿入することはありません。代わりに、通常は次のいずれかです。
したがって、このシナリオを悪用できる最も可能性の高い方法は、フォームをparent.comのログインフォームのようなものに置き換えて、parent.comではなく、実際に制御するものに投稿できる場合です。ユーザーの資格情報を盗みます。
いいえ、iframeは本質的に制限されているため、これはおそらく不可能です。すべてのiFrameは、ソースとして含まれているサイトへの単純なGETリクエストであり、それを親サイトに埋め込み、さらにそれとの対話を可能にすることを覚えておいてください。子サイト内のPOST-XSS脆弱性について説明しましたが、これもまたGETリクエストのみなので、iframeで自動的にトリガーするのは非常に困難です。
理論的に言えば、子サイトから親サイトにJavaScriptを実行できるブラウザのエクスプロイトを明らかに見つけることができますが、そのようなことは親サイトの賞金よりもはるかに価値があります。さらに、POST-XSSしか持っていないので、それでもおそらくあなたのケースでは機能しません。
IFrameは他のユーザーや私が指摘したように制限されていますが、javascript:
URIには例外があることに注意してください。次のようなiframeを例にとります。
<iframe src="javascript:alert(0)"></iframe>
これがWebサイト上にある場合、アラートが表示されるだけでなく、技術的には子サイトがないため、「親サイト」に対するアラートになります。これは興味深い動作であり、iFrameが常に 'restrictive'とは限らないことを証明しています。