
Ferramenta Golang que ajuda a remover entradas irrelevantes do seu arquivo de resultados do ffuf.
Infelizmente - apesar da sua flag "-ac", o ffuf tende a produzir muitas entradas irrelevantes. É por isso que criei uma ferramenta de pós-processamento para filtrar essas entradas. Além disso, notei que muitas entradas relevantes eram removidas quando "-ac" era usado - especialmente quando o ffuf encontra arquivos json ou xml - "-ac" pode descartá-las por completo. Esta ferramenta deve ser executada depois que o ffuf terminar. Além disso, o comando ffuf inicial deve ser executado com as seguintes flags:
-o /folder/to/results.json
-od /folder/to/bodies
-of json (default)
Isso faz com que o ffuf grave um arquivo de resumo em formato json, bem como os corpos das respostas em disco. Adicionar "-od" não é obrigatório, mas recomendado.
Recomendo fortemente NÃO usar a flag "-ac" - especialmente se você não quiser perder coisas legais e quiser usar esta ferramenta de pós-processamento.
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)
Primeiro, execute o ffuf como sempre - usei um comando minimalista muito simples:
./ffuf -u yourtarget.com/FUZZ -w /path/to/wordlist -o /tmp/ffuf/results.json -od /tmp/ffuf/bodies/ -of json
Depois que ele terminar, você deve ter o arquivo de resultado, bem como todos os corpos nas suas pastas especificadas. Agora é hora de analisar os dados e filtrar as entradas irrelevantes:
./ffufPostprocessing -result-file /tmp/ffuf/results.json -bodies-folder /tmp/ffuf/bodies/ -delete-bodies -overwrite-result-file
Especialmente quando -od é definido, o que significa que temos todos os cabeçalhos http e corpos para cada url solicitada - esta ferramenta irá inicialmente analisar todos os corpos e enriquecer o arquivo de resultados json inicial com os seguintes pontos de dados:
Em seguida, ela examinará todo o novo arquivo de resultados e manterá apenas as entradas que são únicas com base em tipos de metadados conhecidos. Se um desses valores for sempre diferente (por exemplo, o título das páginas pode variar muito) - esse tipo de metadado será ignorado na verificação de exclusividade.
Em geral, esta ferramenta sempre manterá uma pequena quantidade de entradas que não são únicas. Por exemplo, se o arquivo de resultados json contém 300x o status http 403 (com palavras, comprimento, ... idênticos) e 2 respostas únicas com status http 200, ela não removerá todas as 300 entradas de status http 403. Ela manterá X delas no conjunto de dados.
ffufPostprocessing requer golang 1.19
cd ffufPostprocessing
go build -o dist/ffufPostprocessing main.go
Não me importo. Faça o que quiser com esta ferramenta.