
jsluice++ è un'estensione di Burp Suite progettata per la scansione passiva e attiva del traffico JavaScript utilizzando lo strumento CLI jsluice
jsluice++ è un'estensione di Burp Suite progettata per lo scanning passivo e attivo del traffico JavaScript utilizzando lo strumento CLI jsluice.
L'estensione sfrutta le funzionalità di jsluice per estrarre URL, percorsi e segreti da file JavaScript statici e la integra con Burp Suite, consentendoti di scansionare facilmente il traffico JavaScript dalla Sitemap o dal Proxy di Burp Suite, offrendo anche un'interfaccia intuitiva per l'ispezione dei dati e una serie di funzionalità aggiuntive utili.
Requisiti:
se non è la prima volta che installi un'estensione Jython puoi saltare al punto 3.
go install github.com/BishopFox/jsluice/cmd/jsluice@latest (assicurati che il binario di jsluice sia nel tuo $PATH, altrimenti l'estensione non funzionerà)L'estensione aggiunge una voce al menu contestuale di Burp Suite che consente di elaborare facilmente le risposte dalla scheda Sitemap di Burp Suite
per farlo, fai clic con il tasto destro su qualsiasi host nell'albero della sitemap o su qualsiasi elemento nella tabella della sitemap e seleziona Extensions->jsluice++->Process selected item(s) nel menu contestuale di Burp Suite.
Quando elabora elementi dall'albero della sitemap, l'estensione recupera la sitemap di ogni elemento selezionato (possono essere elaborati più host)

Default: Off
Quando la scansione passiva è attivata, l'estensione registra un http handler ed elabora le risposte del traffico che passa attraverso il Proxy di Burp Suite (si consiglia di usare la funzione in-scope only quando si abilita la scansione passiva per ridurre il rumore)
L'estensione elabora qualsiasi URL con estensione .js o con mime type JavaScript e codice di stato di successo (2xx) utilizzando la modalità urls di jsluice.
Il file JavaScript elaborato viene temporaneamente salvato localmente nella directory ".jsluicepp" e viene rimosso dopo che jsluice ha terminato di elaborarlo,
Se jsluice restituisce dati, l'host associato all'URL verrà aggiunto all'elenco Hosts; per visualizzare i risultati di jsluice basta selezionare l'host e il file desiderato (è possibile selezionare più file).
Nota: lo stesso URL (esclusi i parametri GET) non verrà elaborato più di una volta finché l'estensione non viene ricaricata; questo non vale per gli URL monitorati.
Ogni file nell'elenco Files può essere monitorato dall'estensione: basta fare clic con il tasto destro sul file e selezionare l'opzione "Monitor URL" dal menu a comparsa (ripeti questo passaggio se desideri interrompere il monitoraggio dell'URL),
Quando viene monitorato un nuovo URL, i suoi dettagli vengono salvati in .jsluicepp/monitored_urls.txt e una copia dell'output di jsluice viene salvata localmente in .jsluicepp/monitored_files/{host}_{filename_hash} (segreti esclusi),
I file monitorati sono colorati di verde nell'elenco Files,
La frequenza con cui le richieste vengono inviate agli URL monitorati è determinata dal valore selezionato nel selettore Monitor Interval,
Le opzioni dell'intervallo di monitoraggio sono:
se jsluice restituisce dati diversi dalla copia salvata localmente, verrai notificato con il seguente dialogo a comparsa:

la copia locale del file verrà spostata in .jsluicepp/monitored_files/{host}_{filename_hash}.old e verrà salvata una nuova copia del nuovo file,
Quando si seleziona il file monitorato nell'estensione, le righe nuove/modificate saranno colorate di verde e le versioni precedenti delle righe modificate/eliminate saranno colorate di rosso, esempio:

Ogni riga nella tabella dei risultati URL/Paths può essere inviata al Repeater di Burp Suite facendo clic con il tasto destro su qualsiasi riga e selezionando l'opzione "Send to Repeater" nel menu a comparsa.
Query Params, Body Params e Headers saranno inclusi se presenti,
se la colonna URL/Path inizia con "http://" o "https://" o "//", l'host verrà estratto dalla colonna URL/Path; altrimenti verrà utilizzato l'host selezionato,
se nella colonna Headers è presente un header content-type con un valore di application/json or application/xml or text/xml, il corpo della richiesta verrà formattato di conseguenza.
Default: On
Se selezionata, una tabella dei risultati "Secrets" viene aggiunta all'interfaccia e l'estensione userà la modalità secrets di jsluice sul file dopo che la modalità urls è terminata; se vengono trovati segreti univoci, l'host verrà colorato di rosso con un'emoji 🤫 accanto, esempio:

se desideri usare una configurazione personalizzata dei pattern, puoi farlo modificando la variabile 'secrets_command' nel codice.
Default: Off
Se selezionata e se è selezionata anche la casella Secrets, verrai notificato con un dialogo a comparsa quando viene trovato un nuovo segreto univoco; il dialogo si chiude automaticamente dopo 15 secondi, esempio di dialogo:

L'URL di ogni file elaborato può essere copiato negli appunti facendo clic con il tasto destro sul file nell'elenco Files e selezionando l'opzione "Copy URL" dal menu a comparsa.
La funzione di filtro Positive/Negative Match è pensata per agire sulla colonna URL/Path all'interno della tabella dei risultati. Quando si aggiunge un filtro positivo, nella tabella dei risultati verranno incluse solo le righe che contengono il filtro positivo nella colonna URL/Path. Al contrario, quando si aggiunge un filtro negativo, le righe che hanno il filtro negativo nella colonna URL/Path verranno escluse dai risultati. È possibile applicare più filtri.

Default: Off
Se selezionata, l'estensione userà lo scope di Burp Suite per determinare se un URL deve essere elaborato; inoltre, gli host fuori scope non verranno visualizzati nell'elenco degli host.
Default: Off
Quando selezionata, oltre agli URL con estensione/mime type .js, l'estensione cercherà risposte con mime type HTML; se viene trovata una tale risposta, l'estensione tenterà di estrarre tutti i tag
se un URL monitorato risponde con un codice di stato non di successo (2xx) o se jsluice non restituisce output, verrà visualizzato un dialogo a comparsa che chiede se desideri interrompere il monitoraggio dell'URL; se viene selezionato "Yes", tutte le copie locali del file verranno rimosse.
