Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
domdig — Scanner DOM XSS per applicazioni a pagina singola | Kitploit
Strumenti/GitHubGitHub/fcavallarin/domdig
Scanner di VulnerabilitàScanner di Vulnerabilità WebAnalisi Dinamica (Sandboxing)Sicurezza WebFuzzing
GitHubfcavallarin/domdig

domdig

Scanner DOM XSS per applicazioni a pagina singola

Vedi Repository
4205010 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

DOMDig

DOMDig è uno scanner DOM XSS che viene eseguito all'interno del browser web Chromium e può scansionare applicazioni a pagina singola (SPA) in modo ricorsivo.
A differenza di altri scanner, DOMDig può analizzare qualsiasi applicazione web (inclusa gmail) tenendo traccia delle modifiche al DOM e delle richieste XHR/fetch/websocket e può simulare l'interazione reale di un utente generando eventi. Durante questo processo, i payload XSS vengono inseriti nei campi di input e la loro esecuzione viene tracciata per trovare punti di iniezione e le relative modifiche all'URL.
Si basa su htcrawl, una libreria node abbastanza potente da poter analizzare facilmente un account gmail.

CARATTERISTICHE PRINCIPALI

  • Esegue all'interno di un browser reale (Chromium)
  • Motore di scansione DOM ricorsivo
  • Gestisce richieste XHR, fetch, JSONP e websocket
  • Supporta cookie, proxy, header personalizzati, autenticazione http e altro
  • Sequenze di login scriptabili
  • Registratore di sequenze
  • Fuzzer per postmessage

PER INIZIARE

Installazione

root@kitploit:~
git clone https://github.com/fcavallarin/domdig.git
cd domdig && npm i && cd ..
node domdig/domdig.js

Esempio

root@kitploit:~
node domdig.js -c 'foo=bar' -p http:127.0.0.1:8080 https://fcvl.net/htcap/scanme/domxss.php

CONTROLLI EFFETTUATI

DOMDig può eseguire tre diversi tipi di controllo:

  1. DOM XSS
  2. DOM XSS Memorizzato
  3. Template Injection
  4. postMessage XSS

DOM XSS

Il controllo DOM XSS può essere configurato con diverse modalità, abilitando comportamenti differenti. Per impostazione predefinita, sono tutte abilitate.
Le modalità sono:

  1. domscan
  2. fuzz

domscan

Analizza il DOM cercando punti in cui l'utente può iniettare codice JavaScript, ad esempio una casella di testo. Può scoprire punti di iniezione che non possono essere individuati da uno scanner. Un esempio potrebbe essere una funzione di ricerca che prende il testo di una casella di input e, per attivare la ricerca, lo inserisce nell'hash dell'URL come stringa JSON.

fuzz

Sottopone a fuzzing l'URL (parametri di query e hash) per verificare se il nostro codice viene eseguito al caricamento della pagina. Se nessun codice viene eseguito, analizza il DOM generando eventi HTML nella speranza di trovare qualcosa che esegua il nostro payload.
Può anche scoprire il classico Reflected XSS.

DOM XSS Memorizzato

Dopo aver eseguito un controllo DOM XSS, DOMDig analizza la stessa pagina in attesa dell'esecuzione di payload precedentemente utilizzati. Se ne viene trovato uno, significa che può sopravvivere ai ricaricamenti della pagina.

Template Injection

Cerca punti in cui segnaposto di template (es. {var1}) potrebbero essere valutati come codice JavaScript.

Vulnerabilità Segnalate

Ogni vulnerabilità segnalata contiene i seguenti campi:

  1. tipo: il tipo di vulnerabilità, può essere domxss, stored o templateinj
  2. url: l'URL della pagina in cui è stata trovata la vulnerabilità
  3. payload: il payload utilizzato
  4. elemento: il selettore CSS dell'elemento HTML, se presente, in cui abbiamo iniettato il nostro payload
  5. descrizione: una descrizione testuale
  6. confermata: una vulnerabilità è considerata confermata quando l'URL contiene il payload attacco. Se non è confermata, significa che il codice è stato eseguito con successo, ma potrebbe essere necessaria un'analisi manuale per comprendere la relazione tra il payload iniettato e lo schema dell'URL.

Motore di Analisi

DOMDig utilizza htcrawl come motore di analisi.
Il diagramma mostra il processo di analisi ricorsiva.
SPA Crawling Diagram.
Il video qui sotto mostra il motore che analizza gmail. L'analisi è durata molte ore e sono state catturate circa 3000 richieste XHR.

crawling gmail

Sequenza di Login

Una sequenza di login (o sequenza iniziale) è un oggetto json contenente un elenco di azioni da eseguire prima dell'inizio della scansione. Ogni elemento dell'elenco è un array in cui il primo elemento è il nome dell'azione da eseguire e gli elementi rimanenti sono i "parametri" di tali azioni. Le azioni sono:

  • navigate <url>
  • write <selector> <text>
  • select <selector> <value>
  • click <selector>
  • clickToNavigate <selector>
  • sleep <seconds>
  • setTarget <selector>

Esempio

root@kitploit:~
[
   ["navigate", "https://target.local/login-page"],
   ["write", "#username", "demo"],
   ["write", "#password", "demo"],
   ["sleep", 2],
   ["clickToNavigate", "#btn-login"]
]

File Payload

I payload possono essere caricati da file json (opzione -P) come array di stringhe. Per creare payload personalizzati, la stringa window.___xssSink({0}) deve essere utilizzata come funzione da eseguire (invece della classica alert(1))

Esempio

root@kitploit:~
[
   ';window.___xssSink({0});',
   '<img src="https://raw.githubusercontent.com/fcavallarin/domdig/HEAD/a" onerror="window.___xssSink({0})">'
]
Scarica lo strumento