Iframe Traps
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を提出してハッキングトリックを共有してください。
基本情報
この、iframeを介したXSSの悪用により、ユーザーがウェブページ内を移動する際の情報を盗む手法は、元々trustedsec.comの次の2つの投稿で公開されました: here and here。
攻撃はXSSに脆弱なページから始まり、攻撃者がウェブアプリ全体を占有するiframe内でvictimsを移動させることで、victimsがXSS領域を離れないようにすることが可能になります。
XSS攻撃は基本的にウェブページを画面全体(100%)のiframeにロードします。したがって、victimはiframeの中にいることに気づかないでしょう。さらに、victimがiframe内のリンクをクリックしてページを移動すると(ウェブ内で)、任意のJSがロードされた状態でiframe内を移動することになり、この移動から情報が盗まれます。
さらに現実味を出すために、iframeがページのlocationを変更したときに検出するためのlistenersを使い、ユーザーがブラウザを使ってページを移動していると誤認する位置でブラウザのURLを更新することが可能です。
.png)
https://www.trustedsec.com/wp-content/uploads/2022/04/regEvents.png
.png)
https://www.trustedsec.com/wp-content/uploads/2022/04/fakeAddress-1.png
また、listenersを使って盗めるのは被害者が訪れている他のページだけではなく、filled formsに入力されたデータを取得して送信したり(資格情報など)、steal the local storageすることも可能です。
もちろん、主な制約はvictim closing the tab or putting another URL in the browser will escape the iframeという点です。別の回避手段としてはrefresh the pageがありますが、これは部分的にpreventedすることができます。具体的には、iframe内で新しいページが読み込まれるたびに右クリックのコンテキストメニューを無効化したり、ユーザーのマウスがiframeを離れたことを検出してブラウザの再読み込みボタンをクリックしようとしている可能性を察知すると、ブラウザのURLがXSS脆弱な元のURLに戻され、ユーザーが再読み込みすると再び汚染されます(ただし、これはあまりステルスではありません)。
モダンなトラップ (2024+)
- 実際のナビゲーションを模倣するためにfull‑viewport iframeとHistory/Navigation APIを使用する。
Full-viewport iframe trap
```html ```- Navigation API (
navigation.navigate,currententrychange) は外側のURLバーを同期させ、実際のURLをleakingすることなく維持します。 - Go fullscreen にしてブラウザのUIを隠し、自分の偽のアドレスバー/鍵アイコンを描画します。
オーバーレイ & スキマーの使用
- 侵害されたマーチャントは、ホストされた決済iframe(Stripe、Adyen など)を pixel‑perfect overlay に置き換え、実際のフレームは下に残したままキーストロークを中継します。フローが途切れないようレガシーな検証APIを使うこともあります。
- トップフレームにユーザーを閉じ込めることで、URLバーが変わっていないことに気づく前に autofill/password‑manager のデータを取得できます。
2025年の研究で観測された回避トリック
about:blank/data:ローカルフレームは親のオリジンを継承し、一部のコンテンツブロッカーのヒューリスティクスをバイパスします;ネストしたiframeは拡張機能がサードパーティフレームを破棄しても再生成されることがあります。- Permission propagation: 親の
allow属性を書き換えることで、ネストされた攻撃者フレームに対して fullscreen/camera/microphone を目立ったDOM変更なしで付与できます。
簡単なOPSECのヒント
- マウスが離れたとき(body の
mouseleave)に iframe に再フォーカスして、ユーザーがブラウザUIに到達するのを防ぎます。 - フレーム内でコンテキストメニューや一般的なショートカット(
keydownに対するF11、Ctrl+L、Ctrl+T)を無効化して、脱出試行を遅らせます。 - CSP がインラインスクリプトをブロックする場合は、リモートブートストラッパーを注入し、iframe で
srcdocを有効にして、ペイロードをメインページの適用されたCSPの外に配置します。
Related
References
- Iframe security exposed: blind spot fueling payment skimmer attacks (2025)
- Local Frames: exploiting inherited origins to bypass blockers (2025)
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を提出してハッキングトリックを共有してください。


