DOM Invader
Reading time: 6 minutes
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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
DOM Invader
Το DOM Invader είναι ένα εργαλείο προγράμματος περιήγησης που είναι εγκατεστημένο στον ενσωματωμένο περιηγητή του Burp. Βοηθά στην ανίχνευση ευπαθειών DOM XSS χρησιμοποιώντας διάφορες πηγές και καταβυθίσεις, συμπεριλαμβανομένων των διαδικτυακών μηνυμάτων και της ρύπανσης πρωτοτύπων. Το εργαλείο είναι προεγκατεστημένο ως επέκταση.
Το DOM Invader ενσωματώνει μια καρτέλα μέσα στο πάνελ DevTools του προγράμματος περιήγησης που επιτρέπει τα εξής:
- Αναγνώριση ελέγξιμων καταβυθίσεων σε μια ιστοσελίδα για δοκιμές DOM XSS, παρέχοντας λεπτομέρειες σχετικά με το πλαίσιο και την απολύμανση.
- Καταγραφή, επεξεργασία και επαναποστολή διαδικτυακών μηνυμάτων που αποστέλλονται μέσω της μεθόδου
postMessage()
για δοκιμές DOM XSS. Το DOM Invader μπορεί επίσης να ανιχνεύσει αυτόματα ευπάθειες χρησιμοποιώντας ειδικά κατασκευασμένα διαδικτυακά μηνύματα. - Ανίχνευση πηγών ρύπανσης πρωτοτύπων πελάτη και σάρωση ελέγξιμων gadget που αποστέλλονται σε επικίνδυνες καταβυθίσεις.
- Αναγνώριση ευπαθειών DOM clobbering.
Ενεργοποιήστε το
Στον ενσωματωμένο περιηγητή του Burp, μεταβείτε στην επέκταση Burp και ενεργοποιήστε το:
.png)
Τώρα ανανεώστε τη σελίδα και στα Dev Tools θα βρείτε την καρτέλα DOM Invader:
.png)
Εισάγετε ένα Canary
Στην προηγούμενη εικόνα μπορείτε να δείτε μια τυχαία ομάδα χαρακτήρων, που είναι το Canary. Πρέπει τώρα να αρχίσετε να εισάγετε το Canary σε διάφορα μέρη του ιστού (params, forms, url...) και κάθε φορά να κάνετε κλικ στην αναζήτηση. Το DOM Invader θα ελέγξει αν το canary κατέληξε σε οποιαδήποτε ενδιαφέρουσα καταβύθιση που θα μπορούσε να εκμεταλλευτεί.
Επιπλέον, οι επιλογές Inject URL params και Inject forms θα ανοίξουν αυτόματα μια νέα καρτέλα εισάγοντας το canary σε κάθε παράμετρο URL και φόρμα που βρίσκει.
Εισάγετε ένα κενό Canary
Αν θέλετε απλώς να βρείτε πιθανές καταβυθίσεις που μπορεί να έχει η σελίδα, ακόμη και αν δεν είναι εκμεταλλεύσιμες, μπορείτε να αναζητήσετε ένα κενό canary.
Μηνύματα Post
Το DOM Invader επιτρέπει τη δοκιμή για DOM XSS χρησιμοποιώντας διαδικτυακά μηνύματα με δυνατότητες όπως:
- Καταγραφή διαδικτυακών μηνυμάτων που αποστέλλονται μέσω
postMessage()
, παρόμοια με την καταγραφή ιστορικού αιτημάτων/απαντήσεων HTTP του Burp Proxy. - Τροποποίηση και επανέκδοση διαδικτυακών μηνυμάτων για χειροκίνητη δοκιμή DOM XSS, παρόμοια με τη λειτουργία του Burp Repeater.
- Αυτόματη τροποποίηση και αποστολή διαδικτυακών μηνυμάτων για έλεγχο DOM XSS.
Λεπτομέρειες μηνύματος
Λεπτομερείς πληροφορίες μπορούν να προβληθούν για κάθε μήνυμα κάνοντας κλικ σε αυτό, οι οποίες περιλαμβάνουν αν η JavaScript του πελάτη έχει πρόσβαση στις ιδιότητες origin
, data
ή source
του μηνύματος.
origin
: Αν οι πληροφορίες προέλευσης του μηνύματος δεν ελέγχονται, μπορεί να είστε σε θέση να στείλετε διασυνοριακά μηνύματα στον χειριστή γεγονότων από έναν αυθαίρετο εξωτερικό τομέα. Αλλά αν ελέγχεται, μπορεί να είναι ακόμα ανασφαλές.data
: Εδώ αποστέλλεται το payload. Αν αυτά τα δεδομένα δεν χρησιμοποιούνται, η καταβύθιση είναι άχρηστη.source
: Αξιολογεί αν η ιδιότητα πηγής, που συνήθως αναφέρεται σε iframe, επικυρώνεται αντί για την προέλευση. Ακόμα και αν αυτό ελέγχεται, δεν διασφαλίζει ότι η επικύρωση δεν μπορεί να παρακαμφθεί.
Απάντηση σε μήνυμα
- Από την προβολή Μηνυμάτων, κάντε κλικ σε οποιοδήποτε μήνυμα για να ανοίξετε το παράθυρο λεπτομερειών μηνύματος.
- Επεξεργαστείτε το πεδίο Data όπως απαιτείται.
- Κάντε κλικ στο Send.
Ρύπανση Πρωτοτύπων
Το DOM Invader μπορεί επίσης να αναζητήσει ευπάθειες Ρύπανσης Πρωτοτύπων. Πρώτα, πρέπει να το ενεργοποιήσετε:
.png)
Στη συνέχεια, θα αναζητήσει πηγές που σας επιτρέπουν να προσθέσετε αυθαίρετες ιδιότητες στο Object.prototype
.
Αν βρεθεί κάτι, θα εμφανιστεί ένα κουμπί Test για να δοκιμάσετε την βρεθείσα πηγή. Κάντε κλικ σε αυτό, θα εμφανιστεί μια νέα καρτέλα, δημιουργήστε ένα αντικείμενο στην κονσόλα και ελέγξτε αν η testproperty
υπάρχει:
let b = {}
b.testproperty
Μόλις βρείτε μια πηγή μπορείτε να σκανάρετε για ένα gadget:
- Ένας νέος πίνακας ανοίγει από το DOM Invader όταν το κουμπί Scan for gadgets, το οποίο μπορεί να βρεθεί δίπλα σε οποιαδήποτε αναγνωρισμένη πηγή ρύθμισης πρωτοτύπου στην προβολή DOM, πατηθεί. Η σάρωση για κατάλληλα gadgets ξεκινά.
- Εν τω μεταξύ, στην ίδια καρτέλα, η καρτέλα DOM Invader θα πρέπει να είναι ανοιχτή στο πάνελ DevTools. Αφού ολοκληρωθεί η σάρωση, οποιοιδήποτε δέκτες προσβάσιμοι μέσω των αναγνωρισμένων gadgets εμφανίζονται στην προβολή DOM. Για παράδειγμα, μια ιδιότητα gadget με όνομα
html
που μεταφέρεται στον δέκτηinnerHTML
εμφανίζεται στο παρακάτω παράδειγμα.
DOM clobbering
Στην προηγούμενη εικόνα είναι δυνατό να δείτε ότι η σάρωση DOM clobbering μπορεί να ενεργοποιηθεί. Μόλις γίνει αυτό, το DOM Invader θα αρχίσει να αναζητά ευπάθειες DOM clobbering.
Αναφορές
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/enabling
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-xss
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/web-messages
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/prototype-pollution
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-clobbering
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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.