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
This form of abusing XSS via iframes to steal information from the user moving across the web page was originally published in these 2 post from trustedsec.com: here i here.
The attack start in a page vulnerable to a XSS where it’s possible to make the victims don’t leave the XSS by making them navigate within an iframe that occupies all the web application.
The XSS attack will basically load the web page in an iframe in 100% of the screen. Therefore, the victim won’t notice he is inside an iframe. Then, if the victim navigates in the page by clicking links inside the iframe (inside the web), he will be navigating inside the iframe with the arbitrary JS loaded stealing information from this navigation.
Moreover, to make it more realistic, it’s possible to use some listeners to check when an iframe changes the location of the page, and update the URL of the browser with that locations the user things he’s is moving pages using the browser.
.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
Dodatkowo można użyć listeners do kradzieży wrażliwych informacji — nie tylko innych stron odwiedzanych przez ofiarę, ale też danych wpisywanych do wypełnionych formularzy, wysyłania ich (credentials?) lub do wykradania local storage…
Oczywiście główne ograniczenia to fakt, że ofiara zamykając kartę lub wpisując inny URL w przeglądarce opuści iframe. Innym sposobem jest odświeżenie strony, jednak można to częściowo uniemożliwić poprzez wyłączanie menu kontekstowego prawego przycisku myszy za każdym razem, gdy nowa strona jest ładowana wewnątrz iframe, lub wykrywanie, gdy kursor użytkownika opuszcza iframe — potencjalnie z zamiarem kliknięcia przycisku 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 go odświeży, strona zostanie ponownie zainfekowana (uwaga: nie jest to zbyt dyskretne).
Zmodernizowana pułapka (2024+)
- Użyj full‑viewport iframe oraz History/Navigation API, aby naśladować prawdziwą nawigację.
Pułapka full‑viewport iframe
```html ```- Navigation API (
navigation.navigate,currententrychange) utrzymuje zewnętrzny pasek adresu URL w synchronizacji bez leakowania prawdziwego URL. - Przejdź w fullscreen, aby ukryć interfejs przeglądarki i narysować własny fałszywy pasek adresu/kłódkę.
Overlay & skimmer — użycie
- Skompromitowani sprzedawcy zastępują hostowane 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ą legacy validation APIs, żeby przepływ nie został przerwany.
- Uwięzienie użytkowników w top frame pozwala przechwycić dane z autofill/password‑manager zanim zauważą, że pasek adresu URL nigdy się nie zmienił.
Evasion tricks (observed in 2025 research)
about:blank/data:local frames dziedziczą origin rodzica i omijają niektóre heurystyki content‑blockerów; zagnieżdżone iframes mogą respawnować nawet gdy rozszerzenia zrywają third‑party frames.- Permission propagation: nadpisanie rodzicielskiego atrybutu
allowprzyznaje zagnieżdżonym attacker frames fullscreen/camera/microphone bez oczywistych zmian w DOM.
Quick OPSEC tips
- Ponownie ustaw focus na iframe gdy kursor opuszcza stronę (
mouseleaveon body), żeby uniemożliwić użytkownikom dotarcie do UI przeglądarki. - Wyłącz menu kontekstowe i popularne skróty (
keydowndlaF11,Ctrl+L,Ctrl+T) wewnątrz ramki, aby spowolnić próby ucieczki. - Jeśli CSP blokuje inline scripts, wstrzyknij zdalny bootstrapper i włącz
srcdocna iframe, aby Twój payload żył poza egzekwowanym CSP strony głównej.
Powiązane
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.


