hacktricks/pentesting-web/xss-cross-site-scripting/some-same-origin-method-execution.md

5.7 KiB
Raw Blame History

SOME - 同一オリジンメソッド実行

htARTEHackTricks AWS Red Team Expert を通じてゼロからヒーローまでAWSハッキングを学ぶ

WhiteIntel

WhiteIntelは、ダークウェブを活用した検索エンジンで、企業やその顧客が盗難マルウェアによって侵害されていないかをチェックする無料機能を提供しています。

WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。

彼らのウェブサイトをチェックして、無料でエンジンを試すことができます:

{% embed url="https://whiteintel.io" %}


同一オリジンメソッド実行

ページ内で一部の制限付きjavascriptを実行できる場合があります。たとえば、実行されるコールバック値を制御できる場合です。

そのような場合、できることの1つは、DOMにアクセスして(たとえば、ボタンをクリックするなど)そこで見つけた機密アクションを呼び出すことです。ただし、通常、DOMに興味深いものがない小さなエンドポイントでこの脆弱性を見つけることがあります。

そのようなシナリオでは、この攻撃は非常に役立ちます。なぜなら、その目的は、同じドメイン内の異なるページからDOM内の制限付きJS実行を悪用できるようにすることです。

基本的に、攻撃フローは次のとおりです:

  • 悪用できるコールバックを見つける(おそらく[\w\._]に制限されている可能性があります)。
  • 制限がなく、任意のJSを実行できる場合は、これを通常のXSSとして悪用できます
  • 被害者に 攻撃者が制御するページを開かせる
  • ページは 異なるウィンドウ自分自身を開く(新しいウィンドウには初期のウィンドウを参照する**opener**オブジェクトがあります)
  • 初期ページは、興味深いDOMがあるページを読み込みます。
  • 2番目のページは、コールバックを悪用し、openerオブジェクトを使用して初期ページアクションをアクセスして実行しますこれには今や興味深いDOMが含まれています

{% hint style="danger" %} 初期ページが2番目のページを作成した後に新しいURLにアクセスしても、2番目のページのopenerオブジェクトは新しいDOM内の最初のページへの有効な参照です。

さらに、2番目のページがopenerオブジェクトを使用できるようにするには、両方のページが同じオリジンにある必要があります。この脆弱性を悪用するには、同じオリジン内のXSSの種類を見つける必要があるためです。 {% endhint %}

悪用

  • https://www.someattack.com/Playground/で脆弱な例を見つけることができます
  • この例では、サーバーがjavascriptコードを生成し、コールバックパラメータの内容に基づいてHTMLに追加しています:<script>opener.{callbacl_content}</script>。この例では、openerの使用を明示する必要がないため、注意してください。
  • また、このCTF解説もチェックしてくださいhttps://ctftime.org/writeup/36068

参考文献