Iframe Traps
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Información básica
Esta forma de abusar de XSS vía iframes para robar información del usuario mientras se desplaza por la página web fue publicada originalmente en estos 2 posts de trustedsec.com: here and here.
El ataque comienza en una página vulnerable a XSS donde es posible hacer que las víctimas no abandonen el XSS forzándolas a navegar dentro de un iframe que ocupa toda la aplicación web.
El ataque XSS básicamente cargará la página web en un iframe al 100% de la pantalla. Por lo tanto, la víctima no notarás que está dentro de un iframe. Luego, si la víctima navega por la página haciendo clic en enlaces dentro del iframe (dentro del sitio), estará navegando dentro del iframe con el JS arbitrario cargado que roba información de esa navegación.
Además, para hacerlo más realista, es posible usar algunos listeners para comprobar cuando un iframe cambia la ubicación de la página y actualizar la URL del navegador con esas ubicaciones, de modo que el usuario crea que está cambiando de página usando el navegador.
.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
Además, es posible usar listeners para robar información sensible, no solo las otras páginas que visita la víctima, sino también los datos usados para llenar formularios y enviarlos (¿credenciales?) o para robar el local storage…
Obviamente, las principales limitaciones son que una víctima que cierra la pestaña o introduce otra URL en el navegador escapará del iframe. Otra forma de salir sería refrescar la página; sin embargo, esto podría ser parcialmente previsto deshabilitando el menú contextual del clic derecho cada vez que se carga una nueva página dentro del iframe o detectando cuando el cursor del usuario sale del iframe, potencialmente para hacer clic en el botón de recarga del navegador; en ese caso la URL del navegador se actualiza con la URL original vulnerable a XSS, así que si el usuario la recarga, quedará nuevamente comprometida (nota: esto no es muy sigiloso).
Trampa modernizada (2024+)
- Usar un full‑viewport iframe más History/Navigation API para imitar una navegación real.
Full-viewport iframe trap
```html ```- Navigation API (
navigation.navigate,currententrychange) mantiene la barra de URL exterior sincronizada sin leaking de la URL real. - Activa fullscreen para ocultar la UI del navegador y dibujar tu propia barra de direcciones/candado falsa.
Uso de Overlay & skimmer
- Comerciantes comprometidos reemplazan los hosted payment iframes (Stripe, Adyen, etc.) con una pixel‑perfect overlay que reenvía las pulsaciones de tecla mientras el frame real permanece debajo, a veces usando legacy validation APIs para que el flujo nunca se rompa.
- Atrapando a los usuarios en el frame superior se captura información de autofill/password‑manager antes de que noten que la barra de URL nunca cambió.
Técnicas de evasión observadas en la investigación de 2025
about:blank/data:local frames heredan el parent origin y eluden algunas heurísticas de content‑blockers; los nested iframes pueden respawn incluso cuando las extensions tear down third‑party frames.- Permission propagation: reescribir el atributo parent
allowconcede a los nested attacker frames fullscreen/camera/microphone sin cambios evidentes en el DOM.
Consejos rápidos de OPSEC
- Vuelve a enfocar el iframe cuando el mouse salga (
mouseleaveen body) para evitar que los usuarios alcancen la UI del navegador. - Deshabilita el menú contextual y atajos comunes (
keydownparaF11,Ctrl+L,Ctrl+T) dentro del frame para ralentizar los intentos de escape. - Si CSP bloquea scripts inline, inyecta un bootstrapper remoto y habilita
srcdocen el iframe para que tu payload viva fuera del CSP aplicado en la página principal.
Relacionado
Referencias
- Iframe security exposed: blind spot fueling payment skimmer attacks (2025)
- Local Frames: exploiting inherited origins to bypass blockers (2025)
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.


