tags: ffuf enumerazione Directiory_Enumeration
Questo strumento funzione in modo molto simile a Wfuzz.
Note importanti
Nel caso dia troppi risultati usa la flag -s oppure manda tutto a 2>/dev/null.
Nel caso una wordlist avesse dei commenti come la directory-medium-2.3.txt li puoi ignorare tramite la flag -ic
Per nascondere per esempio gli output con 1 word usa -fw 0 mentre per size di 1 -fs 0
Comando di base
ffuf -u http://10.10.164.209/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-files-lowercase.txt -cComando per aggiungere estensioni
ffuf -u http://10.10.164.209/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-words-lowercase.txt -e .php,.txt -c Attenzione a non lasciare spazio tra le varie estensioni perchè altrimenti interpreterà solo quelli prima degli spazi, se per esempio avessi messo -e .php, .txt FFUF avrebbe interpretato solo l’estensione .php.
Filtri
Per eliminare gli status code che non ci interessano possiamo usare:
ffuf -u http://10.10.164.209/config/FUZZ -w -c /opt/wordlists/SecList/Discovery/Web-Content/raft-medium-files-lowercase.txt -fc 403Per ottenere solo lo status code desiderato tipo il 200 possiamo usare:
ffuf -u http://10.10.164.209/config/FUZZ -w /opt/wordlists/SecList/Discovery/Web-Content/directory-list-2.3-medium.txt -ic -cSpesso vediamo falsi positivi con file che iniziano con un punto (ad esempio .htgroups, .php, ecc.). Generano un errore 403 Forbidden, tuttavia quei file in realtà non esistono. È allettante usare -fc 403, ma questo potrebbe nascondere file preziosi a cui non abbiamo ancora accesso. Quindi possiamo usare un’espressione regolare per trovare tutti i file che iniziano con un punto:
ffuf -u http://10.10.164.209/FUZZ -w -c /usr/share/seclists/Discovery/Web-Content/raft-medium-files-lowercase.txt -fr '/\..*'Fuzzing Estensioni
Per esempio potremmo utilizzare una parola coma index che è presente in praticamente ogni sito web e fuzzare per trovare un’estensione interessante di questo file come per esempio .php, per farlo possiamo utilizzare questa sintassi e questa wordlist:
ffuf -u http://94.237.58.137:56274/indexFUZZ -w /opt/wordlists/SecList/Discovery/Web-Content/web-extensions.txt:FUZZNon ho messo il punto dopo index perchè è già presente nella wordlist.
Aggiungere estensioni ad una wordlist
Avremmo potuto anche mettere due wordlist con due keyword per fare sia il fuzz delle pagine che quello delle estensioni per ogni pagina nel seguente modo:
ffuf -u http://94.237.58.137:56274/PANINOFUZZ -w //opt/wordlists/SecList/Discovery/Web-Content/directory-list-2.3-small.txt:PANINO -w /opt/wordlists/SecList/Discovery/Web-Content/web-extensions.txt:FUZZPer ogni singola parola della prima wordlist (PANINO), ffuf cicla l’intera seconda wordlist (FUZZ).
Page Fuzzing
Ora useremo lo stesso concetto di parole chiave che abbiamo utilizzato con ffuf, useremo .php come estensione, inseriremo la nostra parola chiave FUZZ dove dovrebbe essere il nome del file e useremo lo stesso elenco di parole che abbiamo utilizzato per il fuzzing delle directory:
ffuf -u http://SERVER_IP:PORT/blog/FUZZ.php -w /opt/useful/seclists/Discovery/Web-Content/directory-list-2.3-small.txt:FUZZ Fuzzing Ricorsivo
Questa funziona permette di scavare più a fondo in automatico come fa per esempio Dirb, la sintassi è la seguente:
ffuf -u http://154.57.164.74:30703/FUZZ -w /opt/wordlists/SecList/Discovery/Web-Content/raft-large-directories.txt -recursion -recursion-depth 1 -e .php -ic -v -cCon -recursion-depth si stabilisce quante sottocartelle vogliamo fargli cercare in, questo caso solo una sotto cartella, ma ne possiamo mettere quante vogliamo.