
Strumento in Golang che aiuta a rimuovere le voci irrilevanti dal tuo file dei risultati di ffuf.
Purtroppo - nonostante il flag "-ac", ffuf tende a produrre molte voci irrilevanti. È per questo che ho creato uno strumento di post-elaborazione per filtrare quelle voci. Inoltre, ho visto molte voci pertinenti rimosse quando veniva usato "-ac" - specialmente quando ffuf incontra file json o xml - "-ac" potrebbe eliminarle del tutto. Questo strumento deve essere eseguito dopo che ffuf ha terminato. Inoltre, il comando ffuf iniziale dovrebbe essere eseguito con i seguenti flag:
-o /folder/to/results.json
-od /folder/to/bodies
-of json (default)
Questo obbliga ffuf a scrivere un file di riepilogo in formato json oltre ai body delle risposte su disco. Aggiungere "-od" non è obbligatorio ma raccomandato.
Raccomando vivamente di NON usare il flag "-ac" - specialmente se non vuoi perderti cose interessanti e vuoi usare questo strumento di post-elaborazione.
Usage of ./ffufPostprocessing:
-result-file string
Path to the original ffuf result file (in json format)
-bodies-folder string
Path to the ffuf bodies folder (optional, if set results will be better)
-new-result-file string
Path to the new ffuf result file (optional)
-delete-bodies
Delete unnecessary body files after filtering (optional)
-overwrite-result-file
Overwrite original result file (optional)
-verbose
Verbose mode (Shows currently filtered results) (optional)
Prima esegui ffuf come sempre - ho usato un comando molto semplice e minimalista:
./ffuf -u yourtarget.com/FUZZ -w /path/to/wordlist -o /tmp/ffuf/results.json -od /tmp/ffuf/bodies/ -of json
Dopo l'esecuzione, dovresti avere il file dei risultati e tutti i body nelle cartelle specificate. Ora è il momento di analizzare i dati e filtrare le voci irrilevanti:
./ffufPostprocessing -result-file /tmp/ffuf/results.json -bodies-folder /tmp/ffuf/bodies/ -delete-bodies -overwrite-result-file
Soprattutto quando -od è impostato, il che significa che abbiamo tutti gli header http e i body per ogni url richiesto - questo strumento analizzerà inizialmente tutti i body e arricchirà il file json dei risultati iniziali con i seguenti dati:
Successivamente analizzerà l'intero nuovo file dei risultati e conserverà solo quelle voci che sono uniche in base a tipi di metadati noti. Se risulta che uno di questi valori è sempre diverso (ad es. il titolo delle pagine può variare molto) - questo tipo di metadati verrà saltato per il controllo di unicità.
In generale questo strumento manterrà sempre una piccola quantità di voci che non sono uniche. Ad esempio, se il file json dei risultati contiene 300x http status 403 (con parole, lunghezza, ... identiche) e 2 risposte uniche con http status 200, non eliminerà tutte le 300 voci con http status 403. Ne manterrà X nel set di dati.
ffufPostprocessing richiede golang 1.19
cd ffufPostprocessing
go build -o dist/ffufPostprocessing main.go
Non mi interessa. Fai quello che vuoi con questo strumento.