Пастки iframe

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

Основна інформація

Ця форма зловживання XSS через iframes для викрадення інформації під час переміщення користувача по веб‑сторінці була вперше опублікована в цих двох постах на trustedsec.com: тут та тут.

Атака починається на сторінці, вразливій до XSS, де можливо змусити жертву не покидати XSS, змусивши її переміщатися в межах iframe, який займає весь інтерфейс веб‑додатка.

XSS завантажує веб‑сторінку в iframe на 100% екрану. Тому жертва не помітить, що знаходиться всередині iframe. Потім, якщо жертва переходить по сторінках, клікаючи по посиланнях всередині iframe (усередині сайту), вона буде навігувати всередині iframe, а довільний JS, що був завантажений, буде викрадати інформацію про цю навігацію.

Крім того, щоб зробити атаку більш реалістичною, можна використовувати певні listeners, щоб відстежувати, коли iframe змінює location сторінки, і оновлювати URL браузера тим адресам, куди, як думає користувач, він переходить за допомогою браузера.

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

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

Також можна використовувати listeners для викрадення чутливої інформації — не лише сторінок, які відвідує жертва, але і даних, якими заповнюються форми, які потім можна відправити (credentials?) або для викрадення local storage…

Звісно, основні обмеження такі: якщо жертва закриває tab або вводить інший URL у browser, вона вийде з iframe. Інший спосіб уникнути пастки — зробити refresh сторінки, однак це можна частково запобігти, вимикаючи right click context menu щоразу, коли всередині iframe завантажується нова сторінка, або відстежуючи, коли курсор користувача покидає iframe (можливо, щоб натиснути кнопку reload у browser) — у такому випадку URL браузера оновлюється на оригінальний URL, вразливий до XSS, і якщо користувач зробить reload, він знову потрапить у заражену сторінку (зауважте, що це не дуже непомітно).

Оновлена пастка (2024+)

  • Використовуйте full‑viewport iframe та History/Navigation API, щоб імітувати реальну навігацію.
Пастка Full-viewport iframe ```html ```
  • Navigation API (navigation.navigate, currententrychange) підтримує зовнішній рядок URL синхронізованим без leak реального URL.
  • Увімкніть fullscreen, щоб сховати UI браузера та намалювати власну підробну адресну стрічку/padlock.

Overlay & skimmer usage

  • Скомпрометовані продавці замінюють hosted payment iframes (Stripe, Adyen, etc.) на pixel‑perfect overlay, який пересилає натискання клавіш, поки реальний фрейм залишається внизу, іноді використовуючи legacy validation APIs, щоб потік ніколи не ламався.
  • Утримання користувачів у верхньому фреймі дозволяє перехопити дані autofill/password‑manager ще до того, як вони помітять, що рядок URL не змінився.

Evasion tricks observed in 2025 research

  • about:blank/data: local frames успадковують батьківський origin і обходять деякі евристики content‑blocker; вкладені iframes можуть повторно створюватися навіть коли розширення знищують third‑party frames.
  • Permission propagation: переписування батьківського атрибуту allow дає вкладеним фреймам‑атакерам fullscreen/camera/microphone без очевидних змін у DOM.

Quick OPSEC tips

  • Заново фокусуйте iframe при виході миші (mouseleave на body), щоб перешкодити користувачам дістатися UI браузера.
  • Вимкніть контекстне меню та звичні шорткати (keydown для F11, Ctrl+L, Ctrl+T) всередині фрейму, щоб уповільнити спроби втечі.
  • Якщо CSP блокує inline скрипти, інжектьте віддалений bootstrapper і увімкніть srcdoc на iframe, щоб ваш payload жив поза примусовим CSP головної сторінки.

Clickjacking

References

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks