Iframe Traps

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Basic Information

Cette forme d’abus de XSS via des iframes pour voler des informations lorsque l’utilisateur navigue sur la page web a Ă©tĂ© initialement publiĂ©e dans ces 2 articles de trustedsec.com : here and here.

L’attaque commence sur une page vulnĂ©rable Ă  une XSS oĂč il est possible d’empĂȘcher les victims de quitter la XSS en les faisant naviguer within an iframe qui occupe toute l’application web.

L’attaque XSS chargera essentiellement la page web dans un iframe occupant 100% de l’écran. Par consĂ©quent, la victime ne remarquera pas qu’elle est inside an iframe. Ensuite, si la victime navigue sur la page en cliquant sur des liens Ă  l’intĂ©rieur de l’iframe (dans le web), elle sera navigating inside the iframe avec le JS arbitraire chargĂ© qui vole des informations issues de cette navigation.

De plus, pour rendre cela plus rĂ©aliste, il est possible d’utiliser des listeners pour vĂ©rifier quand un iframe change la location de la page, et mettre Ă  jour l’URL du browser avec ces emplacements afin que l’utilisateur pense qu’il navigue entre des pages en utilisant le browser.

https://www.trustedsec.com/wp-content/uploads/2022/04/regEvents.png

https://www.trustedsec.com/wp-content/uploads/2022/04/fakeAddress-1.png

De plus, il est possible d’utiliser des listeners pour voler des informations sensibles, non seulement les autres pages que la victime visite, mais aussi les donnĂ©es utilisĂ©es pour remplir des forms et les envoyer (credentials?) ou pour steal the local storage


Bien sĂ»r, les principales limitations sont qu’une victim fermant l’onglet ou saisissant une autre URL dans le browser Ă©chappera Ă  l’iframe. Une autre façon d’y Ă©chapper serait de refresh the page, cependant cela peut ĂȘtre partiellement prevented en dĂ©sactivant le menu contextuel du clic droit Ă  chaque fois qu’une nouvelle page est chargĂ©e dans l’iframe, ou en dĂ©tectant quand la souris de l’utilisateur quitte l’iframe — potentiellement pour cliquer sur le bouton de rechargement du browser — et, dans ce cas, l’URL du browser est mise Ă  jour avec l’URL originale vulnĂ©rable Ă  XSS ; donc si l’utilisateur la recharge, elle sera Ă  nouveau compromise (notez que ceci n’est pas trĂšs stealth).

Modernised trap (2024+)

  • Utiliser un full‑viewport iframe plus History/Navigation API pour imiter une navigation rĂ©elle.
PiĂšge d'iframe full-viewport ```html ```
  • Navigation API (navigation.navigate, currententrychange) maintient la barre d’URL externe synchronisĂ©e sans leak de l’URL rĂ©elle.
  • Passez en fullscreen pour masquer l’UI du navigateur et dessiner votre propre barre d’adresse/verrou factice.

Utilisation des overlay & skimmer

  • Les marchands compromis remplacent les hosted payment iframes (Stripe, Adyen, etc.) par un pixel‑perfect overlay qui transfĂšre les frappes clavier pendant que le frame rĂ©el reste en dessous, utilisant parfois des legacy validation APIs pour que le flux ne se brise jamais.
  • En piĂ©geant les utilisateurs dans le top frame, on capture les donnĂ©es autofill/password‑manager avant qu’ils ne remarquent que la barre d’URL n’a jamais changĂ©.

Astuces d’évasion observĂ©es dans les recherches de 2025

  • about:blank/data: local frames hĂ©ritent de l’origine parente et contournent certaines heuristiques des content‑blocker ; les iframes imbriquĂ©s peuvent respawn mĂȘme lorsque les extensions suppriment les third‑party frames.
  • Permission propagation : la réécriture de l’attribut parent allow octroie aux nested attacker frames fullscreen/camera/microphone sans changements DOM Ă©vidents.

Conseils OPSEC rapides

  • Refocaliser l’iframe quand la souris sort (mouseleave sur body) pour empĂȘcher les utilisateurs d’atteindre l’UI du navigateur.
  • DĂ©sactiver le menu contextuel et les raccourcis courants (keydown pour F11, Ctrl+L, Ctrl+T) Ă  l’intĂ©rieur du frame pour ralentir les tentatives d’évasion.
  • Si CSP bloque les scripts inline, injectez un remote bootstrapper et activez srcdoc sur l’iframe pour que votre payload vive en dehors du CSP appliquĂ© Ă  la page principale.

Liens

Clickjacking

Références

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks