
Herramienta en Golang que ayuda a eliminar las entradas irrelevantes de tu archivo de resultados de ffuf.
Desafortunadamente, a pesar de su bandera "-ac", ffuf tiende a producir muchas entradas irrelevantes. Por eso he creado una herramienta de post-procesamiento para filtrar esas entradas. Además, vi que se eliminaban muchas entradas relevantes cuando se usaba "-ac" - especialmente cuando ffuf encuentra archivos json o xml - "-ac" podría descartarlas por completo. Esta herramienta debe ejecutarse después de que ffuf haya terminado. Además, el comando ffuf inicial debe ejecutarse con las siguientes banderas:
-o /folder/to/results.json
-od /folder/to/bodies
-of json (default)
Esto obliga a ffuf a escribir un archivo de resumen en formato json, así como los cuerpos de las respuestas en el disco. Agregar "-od" no es obligatorio pero se recomienda.
Recomiendo encarecidamente NO usar la bandera "-ac" - especialmente si no quieres perderte cosas interesantes y quieres usar esta herramienta de post-procesamiento.
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)
Primero ejecuta ffuf como siempre: usé un comando muy simple y minimalista:
./ffuf -u yourtarget.com/FUZZ -w /path/to/wordlist -o /tmp/ffuf/results.json -od /tmp/ffuf/bodies/ -of json
Una vez que se haya ejecutado, deberías tener el archivo de resultados y todos los cuerpos en tus carpetas especificadas. Ahora es el momento de analizar los datos y filtrar las entradas irrelevantes:
./ffufPostprocessing -result-file /tmp/ffuf/results.json -bodies-folder /tmp/ffuf/bodies/ -delete-bodies -overwrite-result-file
Especialmente cuando se establece -od, lo que significa que tenemos todos los encabezados http y cuerpos de cada url solicitada, esta herramienta analizará inicialmente todos los cuerpos y enriquecerá el archivo json de resultados inicial con los siguientes puntos de datos:
Después, escaneará todo el nuevo archivo de resultados y conservará solo aquellas entradas que sean únicas según los tipos de metadatos conocidos. Si resulta que uno de esos valores siempre es diferente (por ejemplo, el título de las páginas puede variar mucho), este tipo de metadato se omitirá en la comprobación de unicidad.
En general, esta herramienta siempre mantendrá una pequeña cantidad de entradas que no son únicas. Por ejemplo, si el archivo json de resultados contiene 300x http status 403 (con words, length, ... idénticos) y 2 respuestas únicas con http status 200, no eliminará todas las 300 entradas con http status 403. Mantendrá X de ellas en el conjunto de datos.
ffufPostprocessing requiere golang 1.19
cd ffufPostprocessing
go build -o dist/ffufPostprocessing main.go
No me importa. Haz lo que quieras con esta herramienta.