Iframe Traps
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Podstawowe informacje
Ta forma wykorzystywania XSS za pomocą iframe’ów do kradzieży informacji od użytkownika poruszającego się po stronie została pierwotnie opisana w tych dwóch wpisach na trustedsec.com: here and here.
Atak zaczyna się na stronie podatnej na XSS, gdzie możliwe jest sprawić, aby victims don’t leave the XSS przez zmuszenie ich do navigate within an iframe, który zajmuje cały interfejs aplikacji.
Atak XSS w praktyce załaduje stronę w iframe zajmującym 100% ekranu. W związku z tym ofiara won’t notice he is inside an iframe. Gdy ofiara nawigując po stronie będzie klikać linki wewnątrz iframe (w obrębie serwisu), będzie navigating inside the iframe, a załadowany dowolny JS będzie wykradać informacje z tej nawigacji.
Dodatkowo, aby nadać temu bardziej realistyczny wygląd, można użyć kilku listeners do sprawdzania, kiedy iframe zmienia lokalizację strony, i aktualizować URL w przeglądarce na tę lokalizację, dzięki czemu użytkownik będzie myślał, że przemieszcza się po kolejnych stronach za pomocą przeglądarki.
.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
Ponadto można użyć listeners do kradzieży wrażliwych informacji — nie tylko innych stron odwiedzanych przez ofiarę, ale także danych wpisywanych w filled forms i ich wysyłania (creds?), albo do steal the local storage…
Oczywiście główne ograniczenia są takie, że victim closing the tab or putting another URL in the browser will escape the iframe. Innym sposobem ucieczki jest refresh the page, jednak można to częściowo prevent poprzez wyłączanie menu kontekstowego prawego przycisku myszy za każdym razem, gdy w iframe ładuje się nowa strona, albo wykrywanie, kiedy kursor użytkownika opuszcza iframe (potencjalnie aby kliknąć przycisk odświeżania przeglądarki). W takim przypadku URL przeglądarki zostanie zaktualizowany do oryginalnego URL podatnego na XSS, więc jeśli użytkownik odświeży stronę, zostanie ona ponownie „zatruta” (uwaga: nie jest to zbyt stealth).
Zmodernizowana pułapka (2024+)
- Użyj full‑viewport iframe oraz History/Navigation API, aby naśladować rzeczywistą nawigację.
Pułapka full-viewport iframe
```html ```- Navigation API (
navigation.navigate,currententrychange) utrzymuje zewnętrzny pasek adresu URL w synchronizacji without leaking the real URL. - Przejdź do fullscreen, aby ukryć browser UI i narysować własny fałszywy address bar/padlock.
Overlay & skimmer — użycie
- Skompromitowani sprzedawcy zastępują hosted payment iframes (Stripe, Adyen, etc.) pixel‑perfect overlay, które przekazują naciśnięcia klawiszy, podczas gdy prawdziwa ramka pozostaje pod spodem — czasami używając legacy validation APIs, aby proces nigdy nie został przerwany.
- Uwięzienie użytkowników w top frame przechwytuje dane autofill/password‑manager zanim zauważą, że pasek URL nigdy się nie zmienił.
Evasion tricks observed in 2025 research
about:blank/data:local frames dziedziczą parent origin i omijają niektóre heurystyki content‑blockera; nested iframes mogą się respawnować nawet gdy extensions teardown third‑party frames.- Permission propagation: przepisanie parent
allowattribute przyznaje nested attacker frames fullscreen/camera/microphone bez widocznych zmian w DOM.
Quick OPSEC tips
- Re‑focus the iframe when the mouse leaves (
mouseleaveon body), aby uniemożliwić użytkownikom sięgnięcie do browser UI. - Wyłącz context menu i popularne skróty (
keydowndlaF11,Ctrl+L,Ctrl+T) wewnątrz ramki, żeby spowolnić próby ucieczki. - Jeśli CSP blokuje inline scripts, wstrzyknij remote bootstrapper i włącz
srcdocna iframe, żeby twój payload znajdował się poza egzekwowanym CSP głównej strony.
Related
References
- Iframe security exposed: blind spot fueling payment skimmer attacks (2025)
- Local Frames: exploiting inherited origins to bypass blockers (2025)
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.


