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 για να κλέψει πληροφορίες από τον χρήστη καθώς αυτός περιηγείται στη σελίδα δημοσιεύτηκε αρχικά σε αυτά τα 2 άρθρα στο trustedsec.com: here and here.

Η επίθεση ξεκινά σε μια σελίδα ευάλωτη σε XSS όπου είναι δυνατό να κάνουμε τα θύματα να μην εγκαταλείπουν το XSS κάνοντάς τα να περιηγούνται εντός ενός iframe που καταλαμβάνει όλη την web εφαρμογή.

Η XSS επίθεση ουσιαστικά θα φορτώσει τη σελίδα σε ένα iframe που καταλαμβάνει το 100% της οθόνης. Επομένως, το θύμα δεν θα παρατηρήσει ότι βρίσκεται μέσα σε iframe. Στη συνέχεια, αν το θύμα περιηγηθεί στη σελίδα κάνοντας κλικ σε συνδέσμους μέσα στο iframe (εντός του web), θα περιηγείται μέσα στο iframe με το αυθαίρετο JS που έχει φορτωθεί να κλέβει πληροφορίες από αυτή την περιήγηση.

Επιπλέον, για να γίνει πιο ρεαλιστικό, είναι δυνατό να χρησιμοποιηθούν μερικοί listeners για να ελέγχουν πότε ένα iframe αλλάζει το location της σελίδας, και να ενημερώνουν το URL του browser με αυτές τις τοποθεσίες που ο χρήστης νομίζει ότι μετακινείται σε σελίδες χρησιμοποιώντας τον browser.

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

Φυσικά, οι κύριοι περιορισμοί είναι ότι ένα θύμα που κλείνει την καρτέλα ή εισάγει άλλο URL στον browser θα ξεφύγει από το iframe. Ένας άλλος τρόπος για να γίνει αυτό είναι να ανανεώσει τη σελίδα, ωστόσο, αυτό θα μπορούσε να προληφθεί εν μέρει με το να απενεργοποιείται το context menu δεξιού κλικ κάθε φορά που φορτώνεται μια νέα σελίδα μέσα στο iframe ή παρατηρώντας πότε ο δείκτης του χρήστη αφήνει το iframe, πιθανώς για να πατήσει το κουμπί reload του browser και σε αυτή την περίπτωση το URL του browser ενημερώνεται με το αρχικό URL ευάλωτο σε XSS έτσι αν ο χρήστης το ανανεώσει, θα μολυνθεί ξανά (σημειώστε ότι αυτό δεν είναι πολύ stealth).

Εκσυγχρονισμένη παγίδα (2024+)

  • Χρησιμοποιήστε ένα full‑viewport iframe μαζί με το History/Navigation API για να μιμηθείτε πραγματική πλοήγηση.
Παγίδα iframe πλήρους προβολής ```html ```
  • Navigation API (navigation.navigate, currententrychange) διατηρεί τη γραμμή URL του εξωτερικού πλαισίου σε συγχρονισμό χωρίς leak της πραγματικής διεύθυνσης URL.
  • Go fullscreen για να κρύψετε το browser UI και να σχεδιάσετε τη δική σας ψεύτικη γραμμή διευθύνσεων/padlock.

Χρήση Overlay & skimmer

  • Συμβιβασμένοι έμποροι αντικαθιστούν hosted payment iframes (Stripe, Adyen, etc.) με ένα pixel‑perfect overlay που προωθεί τα keystrokes ενώ το πραγματικό frame παραμένει από κάτω, μερικές φορές χρησιμοποιώντας legacy validation APIs ώστε η ροή να μην διακόπτεται.
  • Η παγίδευση χρηστών στο top frame συλλέγει δεδομένα autofill/password‑manager πριν παρατηρήσουν ότι η γραμμή URL δεν άλλαξε ποτέ.

Τεχνάσματα αποφυγής παρατηρημένα στην έρευνα του 2025

  • about:blank/data: local frames κληρονομούν το parent origin και παρακάμπτουν κάποιες content‑blocker heuristics; nested iframes μπορούν να επανεμφανιστούν ακόμα και όταν extensions καταργούν third‑party frames.
  • Permission propagation: η επανεγγραφή του parent allow attribute παραχωρεί σε nested attacker frames fullscreen/camera/microphone χωρίς εμφανείς αλλαγές στο DOM.

Γρήγορες συμβουλές OPSEC

  • Επαναφέρτε το focus στο iframe όταν ο δείκτης φεύγει (mouseleave στο body) για να εμποδίσετε τους χρήστες να φτάσουν το browser UI.
  • Απενεργοποιήστε το context menu και κοινά shortcuts (keydown για F11, Ctrl+L, Ctrl+T) μέσα στο frame για να επιβραδύνετε τις προσπάθειες διαφυγής.
  • Εάν το CSP μπλοκάρει inline scripts, εγχύστε έναν remote 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