Bypassing SOP with Iframes - 1
SOP-1のIFrames
このchallengeは、NDevTKとTerjanqによって作成されました。ここでは、コード内のXSSを悪用する必要があります。
SOPバイパス1(e.origin === null)
//example.org
がsandbox付きのiframeに埋め込まれると、ページのoriginは**null
になります。つまり、window.origin === null
です。したがって、<iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">
を通じてiframeを埋め込むことで、null
origin**を強制できます。
ページが埋め込み可能であれば、その保護をバイパスすることができます(クッキーもSameSite=None
に設定する必要があるかもしれません)。
SOPバイパス2(window.origin === null)
あまり知られていない事実は、sandbox値がallow-popups
に設定されている場合、開かれたポップアップはallow-popups-to-escape-sandbox
が設定されていない限り、すべてのsandbox属性を継承します。
したがって、null
originからポップアップを開くと、ポップアップ内の**window.origin
もnull
**になります。
チャレンジの解決策
したがって、このチャレンジでは、iframeを作成し、脆弱なXSSコードハンドラ(/iframe.php
)があるページにポップアップを開くことができます。window.origin === e.origin
となるため、両方がnull
であるため、XSSを悪用するペイロードを送信することが可能です。
そのペイロードは識別子を取得し、XSSをトップページ(ポップアップを開いたページ)に送信します。トップページは脆弱な/iframe.php
にロケーションを変更します。識別子が既知であるため、条件window.origin === e.origin
が満たされていなくても問題ありません(覚えておいてください、originはiframeからのポップアップで**null
origin**を持っています)data.identifier === identifier。その後、XSSが再度トリガーされ、今度は正しいoriginで実行されます。
Last updated