hacktricks/pentesting-web/iframe-traps.md

50 lines
6.5 KiB
Markdown
Raw Permalink Normal View History

# Iframe Traps
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basic Information
Αυτή η μορφή κατάχρησης XSS μέσω iframes για την κλοπή πληροφοριών από τον χρήστη που περιηγείται στη σελίδα δημοσιεύθηκε αρχικά σε αυτές τις 2 αναρτήσεις από το trustedsec.com: [**εδώ**](https://trustedsec.com/blog/persisting-xss-with-iframe-traps) **και** [**εδώ**](https://trustedsec.com/blog/js-tap-weaponizing-javascript-for-red-teams).
Η επίθεση ξεκινά σε μια σελίδα ευάλωτη σε XSS όπου είναι δυνατό να κάνουμε τους **θύματα να μην φύγουν από το XSS** κάνοντάς τους **να περιηγούνται μέσα σε ένα iframe** που καταλαμβάνει όλη την εφαρμογή ιστού.
Η επίθεση XSS θα φορτώσει βασικά τη σελίδα σε ένα iframe στο 100% της οθόνης. Επομένως, το θύμα **δεν θα παρατηρήσει ότι είναι μέσα σε ένα iframe**. Στη συνέχεια, αν το θύμα περιηγηθεί στη σελίδα κάνοντας κλικ σε συνδέσμους μέσα στο iframe (μέσα στο διαδίκτυο), θα **περιηγείται μέσα στο iframe** με το αυθαίρετο JS που φορτώνεται να κλέβει πληροφορίες από αυτή την περιήγηση.
Επιπλέον, για να γίνει πιο ρεαλιστικό, είναι δυνατό να χρησιμοποιηθούν κάποιοι **listeners** για να ελέγξουν πότε ένα iframe αλλάζει τη θέση της σελίδας και να ενημερώσουν το URL του προγράμματος περιήγησης με αυτές τις τοποθεσίες που νομίζει ο χρήστης ότι περιηγείται σε σελίδες χρησιμοποιώντας το πρόγραμμα περιήγησης.
<figure><img src="../.gitbook/assets/image (1248).png" alt=""><figcaption><p><a href="https://www.trustedsec.com/wp-content/uploads/2022/04/regEvents.png">https://www.trustedsec.com/wp-content/uploads/2022/04/regEvents.png</a></p></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1249).png" alt=""><figcaption><p><a href="https://www.trustedsec.com/wp-content/uploads/2022/04/fakeAddress-1.png">https://www.trustedsec.com/wp-content/uploads/2022/04/fakeAddress-1.png</a></p></figcaption></figure>
Επιπλέον, είναι δυνατό να χρησιμοποιηθούν listeners για να κλέψουν ευαίσθητες πληροφορίες, όχι μόνο τις άλλες σελίδες που επισκέπτεται το θύμα, αλλά και τα δεδομένα που χρησιμοποιούνται για **συμπλήρωση φορμών** και να τα στείλουν (διαπιστευτήρια;) ή να **κλέψουν την τοπική αποθήκευση**...
Φυσικά, οι κύριοι περιορισμοί είναι ότι ένα **θύμα που κλείνει την καρτέλα ή βάζει άλλη διεύθυνση URL στο πρόγραμμα περιήγησης θα ξεφύγει από το iframe**. Ένας άλλος τρόπος για να γίνει αυτό θα ήταν να **ανανεωθεί η σελίδα**, ωστόσο, αυτό θα μπορούσε να αποτραπεί εν μέρει **απενεργοποιώντας** το μενού περιεχομένου με δεξί κλικ κάθε φορά που φορτώνεται μια νέα σελίδα μέσα στο iframe ή παρατηρώντας πότε το ποντίκι του χρήστη φεύγει από το iframe, πιθανώς για να κάνει κλικ στο κουμπί ανανέωσης του προγράμματος περιήγησης και σε αυτή την περίπτωση το URL του προγράμματος περιήγησης ενημερώνεται με το αρχικό URL που είναι ευάλωτο σε XSS, οπότε αν ο χρήστης το ανανεώσει, θα μολυνθεί ξανά (σημειώστε ότι αυτό δεν είναι πολύ διακριτικό).
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}