
Una versione migliore del mio strumento xssfinder - scansiona diversi tipi di xss su un elenco di url.
Questa è la versione estesa basata sull'idea iniziale già pubblicata come "xssfinder". Questa versione privata consente a un attaccante di eseguire non solo richieste GET ma anche POST. Inoltre è possibile inoltrare ogni richiesta attraverso Burp o un altro tunnel.
Rinomina il file example.app-settings.conf in app-settings.conf e modifica le impostazioni. Dovrebbe funzionare subito, ma a seconda del target consiglio di ridimensionare le dimensioni dei chunk.
Questo strumento non accetta argomenti tramite CLI, quindi basta digitare:
python3 extended-xss-search.py
È possibile impostare molte opzioni e parametri, quindi ecco alcune spiegazioni.
Il file di configurazione principale è "app-settings.conf", tutto deve essere fatto in quel file! Oltre a questo, ci sono alcuni altri file che permettono di impostare dati più complessi come header, URL e cookie.
config/cookie-jar.txt
Usa questo file per aggiungere una stringa di cookie. Di solito copio quella che si vede in ogni richiesta Burp. Basta copiare il valore dell'header "Cookie:". Un esempio di input è nel file predefinito.
config/http-headers.txt
Questo file definisce gli header HTTP che vengono aggiunti alla richiesta e manipolati (il payload viene aggiunto a ciascuno). I più importanti sono già nel file. Ma sentiti libero di aggiungerne altri.
config/parameters.txt
Lo strumento ha l'opzione di forzare bruteforce sui parametri GET e POST. In quel caso verranno utilizzati quei parametri (+ quelli nella stringa di query). Ogni parametro riceve il payload come valore. I più importanti sono già in quel file.
config/urls-to-test.txt
Questo è il file di cui hai bisogno! Aggiungi qui i tuoi link da analizzare. Sono ammessi i seguenti formati:
Quando viene rilevato l'ultimo caso, viene aggiunto un "http://". Questo strumento è pensato per funzionare con una buona lista di URL. Un buon modo per ottenerne una è esportarla usando Burp. Poi avrai una lista valida di URL. Tutto ciò che devi fare è aggiungere i tuoi cookie.
logs/
Questa è la cartella dei log dove viene registrato tutto!
Il file app-settings.conf definisce il flusso di lavoro del programma. È il file più importante, puoi attivare/disattivare diversi moduli qui.
Impostazioni di base
HTTPTimeout
Alcune richieste possono richiedere molto tempo. Qui puoi definire il tempo massimo di esecuzione di una richiesta. Consiglio valori tra 2 e 6 secondi.
MaxThreads
Più thread, più veloce è lo script - ma dato che abbiamo a che fare con molte connessioni, di solito tengo questo valore sotto 10 sul mio computer personale e intorno a 30 sul mio VPS.
Tipi di attacco
OnlyBaseRequest
Impostando questo a "true" si otterranno solo "richieste di base" - questo significa che l'elenco di URL viene semplicemente spiderato e i parametri interessanti vengono estratti. Potresti usarlo per riempire rapidamente la tua sitemap di Burp.
UsePost
È possibile saltare le richieste POST impostando questo a "false"
UseGet
Simile - salta le richieste GET se impostato a "false"
Impostazioni dei tipi di attacco
GetChunkSize
Quanti parametri GET testare con una richiesta?
PostChunkSize
Quanti parametri POST testare con una richiesta?
Tunneling
È anche possibile utilizzare un tunnel, ad esempio "127.0.0.1:8080" (Burp Proxy), per monitorare tutto il traffico all'interno di Burp.
Active
Impostando questo a "true" si forza lo script a utilizzare una connessione in tunnel.
Tunnel
Imposta qui il tuo server proxy "ip:porta".
Il risultato è il seguente, quando apri Burp puoi vedere la tua cronologia HTTP:



Basta creare un issue e taggarlo come richiesta di funzionalità.
Ti piace questo strumento? Ti ha aiutato a ottenere una bounty? Vuoi restituire qualcosa/sostenermi? Perché no!