← News ARTICOLI
1 min lettura 291 parole
Articoli Cybersecurity Tool

FFUF - Fast Fuzzer

di Leonardo Borsa

Scopri FFUF, il potente tool in Go per offensive security. Fuzzing, enumerazione, brute force: ottimizza i tuoi test di vulnerabilità.

FFUF - Fast Fuzzer

FFUF è uno strumento realizzato in Go, pensato per diverse attività di offensive security. La sua versatilità lo rende adatto a molti contesti, grazie alla possibilità di definire in modo semplice dove inserire e testare input personalizzati. I suoi utilizzi spaziano dalla rilevazione di sottodomini, enumerazione di directory, al fuzzing di header, fino ad attacchi di brute force e password spraying, con supporto per le richieste GET, POST, PUT, DELETE, etc…

Esempi di utilizzo

1Directory Enumeration

Come molti altri strumenti, anche ffuf può essere utilizzato per eseguire la directory enumeration. È sufficiente inserire il placeholder FUZZ (oppure un segnaposto personalizzato, se necessario) nel punto desiderato dell’URL, direttamente nel parametro -u. Il parametro -w serve a specificare il percorso della wordlist da utilizzare per l’enumerazione. Il parametro -fc (filter code) permette di filtrare le risposte HTTP con uno specifico status code, ad esempio per escludere le pagine che restituiscono un codice 404 (nel nostro caso, il server restituisce effettivamente 404 per le risorse inesistenti, quindi è utile ignorarle). Infine, il parametro -c abilita la colorazione dell’output, rendendo più immediata la distinzione tra i diversi codici di risposta.

bash
ffuf -u http://127.0.0.1:8000/FUZZ -w wordlists/fuzz-url.txt -fc 404 -c
2Fuzzing parametri e valori

Un esempio utile per mostrare l’estrema flessibilità di ffuf è l’utilizzo di due placeholder contemporaneamente: uno per enumerare i parametri e l’altro per testare possibili valori per ciascun parametro. Nel nostro caso, come wordlist dei valori abbiamo utilizzato una semplice lista numerica da 1 a 100, ma nulla vieta di usare qualsiasi altra tipologia di input, a seconda del contesto. Nel parametro -u, come mostrato nel comando precedente, inseriamo i due placeholder (in questo caso con nomi personalizzati). Per ogni placeholder utilizzato, dobbiamo specificare una wordlist tramite il parametro -w. Poiché stiamo effettuando due fuzzing distinti, specificheremo due wordlist, una per ciascun placeholder: la sintassi -w wordlist.txt:PLACEHOLDER consente di indicare che la wordlist verrà utilizzata per sostituire quel preciso placeholder nell’URL. Nell’esempio, params.txt fuzzerà il parametro PARAM, mentre values.txt fuzzerà il valore VALUE.

bash
ffuf -u http://127.0.0.1:8000/item?PARAM=VALUE -w wordlists/params.txt:PARAM -w wordlists/values.txt:VALUE
fuff
rust
fn main() {
  println!("Hello, World!);
}
Colonna 1Colonna 2Colonna 3
123
abc
python
def main():
  print("Hello, World!")

if __name__ == "__main__":
  main()

Pro e Contro

FFUF è uno strumento progettato per eseguire attività di fuzzing, una tecnica di attacco utilizzata per individuare errori, bug o possibili vulnerabilità testando automaticamente l’applicazione con numerose combinazioni di dati. Il bello di FFUF è la sua estrema personalizzabilità: grazie all’uso di wordlist e placeholder, puoi configurarlo in pochi secondi per testare directory nascoste, parametri GET/POST, header, autenticazioni e persino attacchi di brute‑force. Pro: Flessibilità: puoi definire esattamente quali punti della richiesta fuzzare (URL, body, header). Estendibilità: permette di applicare filtri avanzati e personalizzare i codici di stato da includere o escludere, output in vari formati e configurazione di rate limiting custom. Performance: scritto in Go, sfrutta pienamente il parallelismo per essere più veloce della maggior parte dei tool in Python. Contro: Nonostante la versatilità e potenza di FFUF, va considerato che per alcune operazioni specifiche potrebbe non essere la scelta ottimale. Esistono infatti strumenti specializzati che, pur avendo uno scopo più ristretto, sono progettati per eseguire determinati compiti in modo più efficiente e mirato. In questi casi, FFUF rischia di essere superato da tool focalizzati su uno specifico tipo di attacco come, ad esempio: Gobuster: Utilizzato per l’enumerazione di directory e DNS: https://github.com/OJ/gobuster Wfuzz: Utilizzato per fuzzing: https://github.com/xmendez/wfuzz Feroxbuster: Utilizzato per l’enumerazione di directory: https://www.kali.org/tools/feroxbuster/ (Consulta la nostra guida dedicata: https://studioconsi.com/articoli/feroxbuster/)

CaratteristicaFuFFGobusterWfuffFeroxbuster
Difficoltà di utilizzo baseMediaMediaAltaBassa
Possibilità di configurazione dell’analisiAltaMediaMolto AltaMolto Alta
Analisi con una configurazione stockBassaMediaBassaAlta
Pesantezza dello strumentoLeggeroLeggeroMedioAbbastanza pesante
Facilità di configurazioneAltaMediaMediaMedia
Flessibilità delle tipologie di analisiMolto altaAltaMolto AltaBassa

Chart.JS

Test

a

t2

a

t3

a

t4

a

t5

a

t6

a

Apache ECharts


D3

Target Distribution Map

Example Feroxbuster scan activity by region.

Discovery Flow Network

Host relationships discovered during enumeration.

Endpoint Hierarchy

Feroxbuster findings grouped by application area.

Response Size Dots

Representative response sizes from enumerated endpoints.

Conclusioni

Stai esplorando i nostri servizi?

Parla con un esperto: ti guidiamo verso la soluzione più adatta alla tua azienda.

Contattaci ora