tags : wfuzz wfuzz_sub_directory sub_directories sottocartelle


Comando completo

wfuzz -c -z file,/usr/share/wordlists/dirb/common.txt -z file,extensions.txt --hh 404 http://example.com/FUZZ.FUZZ 

Per eseguire correttamente questo comando dobbiamo creare un file extensions.txt con all’interno le estensioni che vogliamo testare una per riga.

Comandi base:

Il comando base per Wfuzz è il seguente:

wfuzz -c -z file,/path/to/wordlist.txt <indirizzo_web>/FUZZ
  • wfuzz: Il comando per eseguire Wfuzz.
  • -c: Aggiunge la colorazione all’output, rendendolo più leggibile.
  • -z file,/path/to/wordlist.txt: Specifica la wordlist da utilizzare. Devi sostituire /path/to/wordlist.txt con il percorso effettivo della tua wordlist. Esistono molte wordlist disponibili online, come quelle di SecLists (https://github.com/danielmiessler/SecLists).
  • <indirizzo_web>/FUZZ: L’URL del sito web target con FUZZ al posto della parte che vuoi “forzare”. Wfuzz sostituirà FUZZ con ogni parola presente nella wordlist.

Esempio:

Per esempio, se vuoi enumerare le sottodirectory di http://example.com, useresti:

wfuzz -c -z file,/usr/share/wordlists/dirb/common.txt http://example.com/FUZZ

Questo comando proverà tutte le parole presenti in common.txt (una wordlist comune per la directory brute-forcing) come sottodirectory di http://example.com.

Opzioni avanzate:

  • Codici di stato HTTP: Puoi filtrare i risultati in base ai codici di stato HTTP. Ad esempio, per mostrare solo le directory esistenti (codice 200) e i redirect (codici 301, 302, 307):

    wfuzz -c -z file,/usr/share/wordlists/dirb/common.txt --hh 404 http://example.com/FUZZ
    

    --hh 404 nasconde le risposte con codice 404 (Not Found). Puoi usare anche --hc per specificare i codici da nascondere, ad esempio --hc 404,403 nasconde sia i 404 che i 403.

  • Ricerca ricorsiva: Per cercare sottodirectory all’interno di altre sottodirectory, puoi usare l’opzione -r:

    wfuzz -c -z file,/usr/share/wordlists/dirb/common.txt -r http://example.com/FUZZ
    

    Questo comando proverà anche http://example.com/directory1/FUZZ, http://example.com/directory2/FUZZ, e così via. Attenzione, la ricerca ricorsiva può generare un numero molto elevato di richieste.

  • Estensioni di file: Puoi specificare le estensioni dei file da cercare. Ad esempio, per cercare file .php, .txt e .html:

    wfuzz -c -z file,/usr/share/wordlists/dirb/common.txt http://example.com/FUZZ.php
    wfuzz -c -z file,/usr/share/wordlists/dirb/common.txt http://example.com/FUZZ.txt
    wfuzz -c -z file,/usr/share/wordlists/dirb/common.txt http://example.com/FUZZ.html
    

    Oppure, per provare diverse estensioni contemporaneamente:

    wfuzz -c -z file,/usr/share/wordlists/dirb/common.txt -z file,extensions.txt http://example.com/FUZZ.FUZZ
    

    Dove extensions.txt contiene le estensioni che vuoi provare, una per riga.

  • Tempo di attesa: Puoi impostare un tempo di attesa tra le richieste con l’opzione -p:

    wfuzz -c -z file,/usr/share/wordlists/dirb/common.txt -p 0.1 http://example.com/FUZZ
    

    Questo comando imposterà un ritardo di 0.1 secondi tra ogni richiesta. Questo può essere utile per evitare di sovraccaricare il server target o di essere bloccati.

  • Header personalizzati: Puoi aggiungere header personalizzati alle richieste HTTP con l’opzione -H. Ad esempio, per impostare l’User-Agent:

    wfuzz -c -z file,/usr/share/wordlists/dirb/common.txt -H "User-Agent: Mozilla/5.0" http://example.com/FUZZ
    
  • Mostrare solo i risultati con una determinata lunghezza: Puoi usare --ss (size show) per mostrare solo le risposte con una specifica lunghezza in byte. Questo è utile per identificare pagine con contenuti diversi da quelli standard di “pagina non trovata”. Ad esempio:

    wfuzz -c -z file,/usr/share/wordlists/dirb/common.txt --ss 1234 http://example.com/FUZZ
    

    Mostrerà solo le risposte con una lunghezza di 1234 byte. Puoi combinare --ss con --hh per escludere i 404 e concentrarti su pagine “interessanti” con una certa dimensione.