DOM Invader

Reading time: 5 minutes

tip

Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks

DOM Invader

DOM Invader è uno strumento del browser installato nel browser integrato di Burp. Aiuta a rilevare vulnerabilità DOM XSS utilizzando varie fonti e sink, inclusi messaggi web e inquinamento del prototipo. Lo strumento è preinstallato come estensione.

DOM Invader integra una scheda all'interno del pannello DevTools del browser che consente quanto segue:

  1. Identificazione dei sink controllabili su una pagina web per il testing DOM XSS, fornendo dettagli sul contesto e sulla sanitizzazione.
  2. Registrazione, modifica e reinvio di messaggi web inviati tramite il metodo postMessage() per il testing DOM XSS. DOM Invader può anche rilevare automaticamente vulnerabilità utilizzando messaggi web appositamente creati.
  3. Rilevamento delle fonti di inquinamento del prototipo lato client e scansione di gadget controllabili inviati a sink rischiosi.
  4. Identificazione delle vulnerabilità di clobbering DOM.

Abilitalo

Nel browser integrato di Burp vai all'estensione Burp e abilitalo:

Ora aggiorna la pagina e nei Dev Tools troverai la scheda DOM Invader:

Inietta un Canary

Nell'immagine precedente puoi vedere un gruppo casuale di caratteri, che è il Canary. Ora dovresti iniziare a iniettarlo in diverse parti del web (parametri, moduli, url...) e ogni volta cliccare su cerca. DOM Invader controllerà se il canary è finito in qualche sink interessante che potrebbe essere sfruttato.

Inoltre, le opzioni Inietta parametri URL e Inietta moduli apriranno automaticamente una nuova scheda iniettando il canary in ogni parametro URL e modulo che trova.

Inietta un Canary vuoto

Se vuoi solo trovare potenziali sink che la pagina potrebbe avere, anche se non sono sfruttabili, puoi cercare un canary vuoto.

Messaggi Post

DOM Invader consente di testare per DOM XSS utilizzando messaggi web con funzionalità come:

  1. Registrazione dei messaggi web inviati tramite postMessage(), simile alla registrazione della cronologia delle richieste/risposte HTTP di Burp Proxy.
  2. Modifica e riemissione di messaggi web per testare manualmente il DOM XSS, simile alla funzione di Burp Repeater.
  3. Alterazione automatica e invio di messaggi web per sondare il DOM XSS.

Dettagli del messaggio

Informazioni dettagliate possono essere visualizzate su ogni messaggio cliccandoci sopra, che includono se il JavaScript lato client accede alle proprietà origin, data o source del messaggio.

  • origin : Se le informazioni di origine del messaggio non vengono controllate, potresti essere in grado di inviare messaggi cross-origin all'handler degli eventi da un dominio esterno arbitrario. Ma se viene controllato, potrebbe comunque essere insicuro.
  • data: Qui viene inviato il payload. Se questi dati non vengono utilizzati, il sink è inutile.
  • source: Valuta se la proprietà source, di solito riferita a un iframe, è convalidata invece dell'origine. Anche se questo è controllato, non assicura che la convalida non possa essere elusa.

Rispondi a un messaggio

  1. Dalla vista Messaggi, clicca su un messaggio qualsiasi per aprire la finestra di dialogo dei dettagli del messaggio.
  2. Modifica il campo Data come necessario.
  3. Clicca su Invia.

Inquinamento del prototipo

DOM Invader può anche cercare vulnerabilità di Inquinamento del Prototipo. Prima, devi abilitarlo:

Poi, cercherà fonti che ti consentono di aggiungere proprietà arbitrarie a Object.prototype.

Se viene trovata qualcosa, apparirà un pulsante Test per testare la fonte trovata. Clicca su di esso, apparirà una nuova scheda, crea un oggetto nella console e controlla se testproperty esiste:

javascript
let b = {}
b.testproperty

Una volta trovato una sorgente puoi scansionare per un gadget:

  1. Una nuova scheda viene aperta da DOM Invader quando il pulsante Scan for gadgets, che si trova accanto a qualsiasi sorgente di inquinamento del prototipo identificata nella vista DOM, viene cliccato. La scansione per gadget adatti inizia quindi.
  2. Nel frattempo, nella stessa scheda, la scheda DOM Invader dovrebbe essere aperta nel pannello DevTools. Dopo il completamento della scansione, qualsiasi sink accessibile tramite i gadget identificati viene visualizzato nella vista DOM. Ad esempio, una proprietà gadget chiamata html passata al sink innerHTML è mostrata nell'esempio qui sotto.

DOM clobbering

Nell'immagine precedente è possibile vedere che la scansione per DOM clobbering può essere attivata. Una volta fatto, DOM Invader inizierà a cercare vulnerabilità di DOM clobbering.

Riferimenti

tip

Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks