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

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.

https://www.trustedsec.com/wp-content/uploads/2022/04/regEvents.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 allow attribute przyznaje nested attacker frames fullscreen/camera/microphone bez widocznych zmian w DOM.

Quick OPSEC tips

  • Re‑focus the iframe when the mouse leaves (mouseleave on body), aby uniemożliwić użytkownikom sięgnięcie do browser UI.
  • Wyłącz context menu i popularne skróty (keydown dla F11, Ctrl+L, Ctrl+T) wewnątrz ramki, żeby spowolnić próby ucieczki.
  • Jeśli CSP blokuje inline scripts, wstrzyknij remote bootstrapper i włącz srcdoc na iframe, żeby twój payload znajdował się poza egzekwowanym CSP głównej strony.

Clickjacking

References

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