hacktricks/pentesting-web/xss-cross-site-scripting/dom-invader.md

13 KiB
Raw Blame History

DOM Invader

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

Άλλοι τρόποι υποστήριξης του HackTricks:

DOM Invader

Το DOM Invader είναι ένα εργαλείο περιήγησης που είναι εγκατεστημένο στον ενσωματωμένο περιηγητή του Burp. Βοηθά στον εντοπισμό ευπαθειών DOM XSS χρησιμοποιώντας διάφορες πηγές και δεξαμενές, συμπεριλαμβανομένων των μηνυμάτων ιστού και της ρύπανσης πρωτοτύπων. Το εργαλείο είναι προεγκατεστημένο ως επέκταση.

Το DOM Invader ενσωματώνει ένα καρτέλα μέσα στο πάνελ DevTools του περιηγητή επιτρέποντας τα ακόλουθα:

  1. Αναγνώριση ελέγξιμων δεξαμενών σε μια ιστοσελίδα για τον έλεγχο DOM XSS, παρέχοντας πληροφορίες πλαισίου και λεπτομέρειες απολύμανσης.
  2. Καταγραφή, επεξεργασία και επανάληψη μηνυμάτων ιστού που στέλνονται μέσω της μεθόδου postMessage() για τον έλεγχο DOM XSS. Το DOM Invader μπορεί επίσης να ανιχνεύσει αυτόματα ευπαθείς ευπάθειες χρησιμοποιώντας ειδικά δημιουργημένα μηνύματα ιστού.
  3. Εντοπισμός πηγών ρύπανσης πρωτοτύπων στην πλευρά του πελάτη και σάρωση ελέγξιμων συσκευών που στέλνονται σε επικίνδυνες δεξαμενές.
  4. Αναγνώριση ευπαθειών clobbering DOM.

Ενεργοποίηση

Στον ενσωματωμένο περιηγητή του Burp πηγαίνετε στην επέκταση του Burp και την ενεργοποιείτε:

Τώρα ανανεώστε τη σελίδα και στα Dev Tools θα βρείτε την καρτέλα DOM Invader:

Ενσωμάτωση ενός Canary

Στην προηγούμενη εικόνα μπορείτε να δείτε ένα τυχαίο σύνολο χαρακτήρων, που είναι το Canary. Τώρα πρέπει να αρχίσετε να το ενσωματώνετε σε διαφορετικά σημεία του ιστού (παραμέτρους, φόρμες, url...) και κάθε φορά κάντε κλικ στην αναζήτηση. Το DOM Invader θα ελέγξει αν το canary κατέληξε σε κάποια ενδιαφέρουσα δεξαμενή που θα μπορούσε να εκμεταλλευτείτε.

Επιπλέον, οι επιλογές Ενσωμάτωση παραμέτρων URL και Ενσωμάτωση φορμών θα ανοίξουν αυτόματα ένα νέο παράθυρο ενσωματώνοντας το canary σε κάθε παράμετρο URL και φόρμα που βρίσκει.

Ενσωμάτωση ενός κενού Canary

Αν θέλετε απλά να βρείτε πιθανές δεξαμενές που μπορεί να έχει η σελίδα, ακόμα κι αν δεν είναι εκμεταλλεύσιμες, μπορείτε να αναζητήσετε ένα κενό canary.

Μηνύματα Ιστού

Το DOM Invader επιτρέπει τον έλεγχο για DOM XSS χρησιμοποιώντας μηνύματα ιστού με χαρακτηριστικά όπως:

  1. Καταγραφή μηνυμάτων ιστού που στέλνονται μέσω postMessage(), παρόμοια με την καταγραφή ιστορικού αιτήσεων/απαντήσεων HTTP του Burp Proxy.
  2. Τροποποίηση και επανάληψη μηνυμάτων ιστού για χειροκίνητο έλεγχο DOM XSS, παρόμοια με τη λειτουργία του Burp Repeater.
  3. Αυτόματη τροποποίηση και αποστολή μηνυμάτων ιστού για την εξερεύνηση του DOM XSS.

Λεπτομέρειες μηνύματος

Μπορείτε να δείτε λεπτομερείς πληροφορίες για κάθε μήνυμα κάνοντας κλικ σε αυτό, που περιλαμβάνει εάν το JavaScript στην πλευρά του πελάτη έχει πρόσβαση στις ιδιότητες origin, data ή source του μηνύματος.

  • origin : Αν η πληροφορία προέλευσης του μηνύματος δεν ελέγχεται, μπορείτε να στείλετε μηνύματα διασταύρωσης προέλευσης στον χειριστή συμβάντων από ένα αυθαίρετο εξωτερικό τομέα. Αλλά αν ελέγχεται, εξακολουθεί να μπορεί να είναι ανασφαλές.
  • data: Εδώ στέλνεται το φορτίο. Αν αυτά τα δεδομένα δεν χρησιμοποιούνται, η δεξαμενή είναι άχρηστη.
  • source: Αξιολογεί εάν η ιδιότητα πηγής, συνήθως αναφέροντας ένα iframe, είναι επικυρωμένη αντί της προέλευσης. Ακόμα κι αν αυτό ελέγχεται, δεν εξασφαλίζει ότι η επικύρωση δεν μπορεί να παρακαμφθεί.

Απάντηση σε ένα μήνυμα

  1. Από την προβολή Μηνυμάτων, κάντε κλικ σε οποιοδήποτε μήνυμα για να ανοίξετε το παράθυρο λεπτομερειών του μηνύματος.
  2. Επεξεργαστείτε το πεδίο Δεδομένων όπως απαιτείται.
  3. Κάντε κλικ στο Αποστολή.

Ρύπανση Πρωτοτύπων

Το DOM Invader μπορεί επίσης να αναζητήσει ευπαθείς ευπαθείες πρωτοτύπων. Πρώτα, πρέπει να το ενεργοποιήσετε:

Στη συνέχεια, θα αναζητήσει πηγές που σας επιτρέπουν να προσθέσετε αυθαίρετες ιδιότητες στο Object.prototype.

Αν βρεθεί κάτι, θα εμφανιστεί ένα κουμπί Δοκιμή για να δοκιμάσετε την εντοπισμένη πηγή. Κάντε κλικ, θα εμφανιστεί ένα νέο παράθυρο, δημιουργήστε ένα αντικείμενο στην κονσόλα και ελέγξτε αν το testproperty υπάρχει:

let b = {}
b.testproperty

Αφού βρεις μια πηγή μπορείς να σκανάρεις για ένα gadget:

  1. Μια νέα καρτέλα ανοίγει από τον DOM Invader όταν το κουμπί Σάρωση για gadgets, το οποίο μπορεί να βρεθεί δίπλα σε οποιαδήποτε εντοπισμένη πηγή ρύπανσης πρωτοτύπου στην προβολή DOM, πατηθεί. Η σάρωση για κατάλληλα gadgets ξεκινάει τότε.
  2. Ταυτόχρονα, στην ίδια καρτέλα, θα πρέπει να ανοίξει η καρτέλα DOM Invader στο πάνελ DevTools. Αφού ο σάρωση ολοκληρωθεί, οποιεσδήποτε διοχετεύσεις προσβάσιμες μέσω των εντοπισμένων gadgets εμφανίζονται στην προβολή DOM. Για παράδειγμα, ένα ιδιότητα gadget με το όνομα html που περνιέται στη διοχέτευση innerHTML εμφανίζεται στο παρακάτω παράδειγμα.

DOM clobbering

Στην προηγούμενη εικόνα είναι δυνατή η ενεργοποίηση της σάρωσης DOM clobbering. Αφού γίνει αυτό, ο DOM Invader θα αρχίσει την αναζήτηση ευπαθειών DOM clobbering.

Αναφορές

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

Άλλοι τρόποι υποστήριξης του HackTricks: