hacktricks/pentesting-web/xss-cross-site-scripting/dom-invader.md
2024-02-10 13:03:23 +00:00

8.3 KiB

DOM Invader

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

DOM Invader

DOM Invader è uno strumento del browser installato nel browser integrato di Burp. Aiuta a individuare vulnerabilità DOM XSS utilizzando varie fonti e sink, inclusi i messaggi web e la pollution del prototype. 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 di DOM XSS, fornendo contesto e dettagli di sanitizzazione.
  2. Registrazione, modifica e reinvio di messaggi web inviati tramite il metodo postMessage() per il testing di DOM XSS. DOM Invader può anche rilevare automaticamente vulnerabilità utilizzando messaggi web appositamente creati.
  3. Rilevamento delle fonti di pollution del prototype lato client e scansione dei gadget controllabili inviati a sink rischiosi.
  4. Identificazione di vulnerabilità di clobbering del DOM.

Abilita

Nel browser integrato di Burp, vai all'estensione di Burp e abilitala:

Ora aggiorna la pagina e nella 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, form, URL...) e ogni volta fare clic su cerca. DOM Invader verificherà se il canary è finito in qualche sink interessante che potrebbe essere sfruttato.

Inoltre, le opzioni Inietta parametri URL e Inietta form apriranno automaticamente una nuova scheda iniettando il canary in ogni parametro URL e form trovato.

Inietta un Canary vuoto

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

Messaggi Post

DOM Invader consente di testare 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 dei messaggi web per testare manualmente DOM XSS, simile alla funzione di Burp Repeater.
  3. Modifica automatica e invio di messaggi web per sondare DOM XSS.

Dettagli del messaggio

È possibile visualizzare informazioni dettagliate su ciascun messaggio facendo clic su di esso, che include se il JavaScript lato client accede alle proprietà origin, data o source del messaggio.

  • origin: Se le informazioni sull'origine del messaggio non sono controllate, potresti essere in grado di inviare messaggi cross-origin all'event handler 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 facendo riferimento a un iframe, viene convalidata anziché l'origine. Anche se questo viene controllato, non garantisce che la convalida non possa essere elusa.

Rispondi a un messaggio

  1. Dalla vista Messaggi, fai clic su qualsiasi messaggio per aprire il dialogo dei dettagli del messaggio.
  2. Modifica il campo Data come richiesto.
  3. Fai clic su Invia.

Pollution del Prototype

DOM Invader può anche cercare vulnerabilità di Pollution del Prototype. Prima, è necessario abilitarlo:

Quindi, verrà ricercato le fonti che consentono di aggiungere proprietà arbitrarie all'Object.prototype.

Se viene trovato qualcosa, apparirà un pulsante Test per testare la fonte trovata. Fare clic su di esso, verrà visualizzata una nuova scheda, creare un oggetto nella console e verificare se la testproperty esiste:

let b = {}
b.testproperty

Una volta trovata una sorgente, puoi scansionare per un gadget:

  1. Viene aperta una nuova scheda da DOM Invader quando viene cliccato il pulsante Scansiona per gadget, che si trova accanto a qualsiasi sorgente di inquinamento del prototipo identificata nella vista DOM. Inizia quindi la scansione per trovare gadget adatti.
  2. Nel frattempo, nella stessa scheda, la scheda DOM Invader dovrebbe essere aperta nel pannello DevTools. Dopo il completamento della scansione, tutti i sink accessibili tramite i gadget identificati vengono visualizzati nella vista DOM. Ad esempio, una proprietà del gadget chiamata html passata al sink innerHTML viene mostrata nell'esempio seguente.

Sovrascrittura del DOM

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

Riferimenti

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks: