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 -c

Comando 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 403

Per 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 -c

Spesso 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:FUZZ

Non 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:FUZZ

Per 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 -c

Con -recursion-depth si stabilisce quante sottocartelle vogliamo fargli cercare in, questo caso solo una sotto cartella, ma ne possiamo mettere quante vogliamo.