SOME - Same Origin Method Execution
Reading time: 6 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Same Origin Method Execution
ページ内で制限されたjavascriptを実行できる場合があります。例えば、 実行されるコールバック値を制御できる場合です。
その場合、最も良いことの一つは、DOMにアクセスして、見つけた敏感なアクションを呼び出すことです(ボタンをクリックするなど)。しかし、通常、この脆弱性はDOMに興味深いものがない小さなエンドポイントで見つかります。
これらのシナリオでは、この攻撃は非常に有用です。なぜなら、その目的は同じドメインの異なるページ内のDOMでの制限されたJS実行を悪用することだからです。
基本的な攻撃の流れは次のとおりです:
- 悪用できるコールバックを見つける(潜在的に[\w\._]に制限される)。
- 制限がなく、任意のJSを実行できる場合は、通常のXSSとしてこれを悪用できます。
- 被害者に攻撃者が制御するページを開かせる。
- ページは別のウィンドウで自分自身を開く(新しいウィンドウは最初のウィンドウを参照する**
opener
**オブジェクトを持ちます)。 - 最初のページは、興味深いDOMがあるページを読み込みます。
- 二番目のページは、コールバックを悪用して脆弱なページを読み込み、
opener
オブジェクトを使用して最初のページでアクションを実行します(今や興味深いDOMを含んでいます)。
caution
最初のページが二番目のページを作成した後に新しいURLにアクセスしても、二番目のページのopener
オブジェクトは新しいDOM内の最初のページへの有効な参照のままです。
さらに、二番目のページがopenerオブジェクトを使用できるためには、両方のページが同じオリジンに存在する必要があります。これが、この脆弱性を悪用するために、何らかの同じオリジンのXSSを見つける必要がある理由です。
Exploitation
- この形式を使用して、このタイプの脆弱性を悪用するPoCを生成できます:https://www.someattack.com/Playground/SOMEGenerator
- クリックするHTML要素へのDOMパスを見つけるために、このブラウザ拡張機能を使用できます:https://www.someattack.com/Playground/targeting_tool
Example
- 脆弱な例はhttps://www.someattack.com/Playground/で見つけることができます。
- この例では、サーバーがjavascriptコードを生成し、コールバックパラメータの内容に基づいてHTMLに追加しています:
<script>opener.{callbacl_content}</script>
。そのため、この例ではopener
の使用を明示的に示す必要はありません。 - また、このCTFの解説も確認してください:https://ctftime.org/writeup/36068
References
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。