Può capitare che con strumenti come Vim o Nano si creino spazi e righe vuote indesiderate che possono falsare l’enumerazione o il bruteforcing di un attacco, per avere delle wordlist sempre belle pulite possiamo usare il seguente comando:
grep -v '^$' users.txt | tr -d ' \t' | sort -u > users_clean.txtQuesto toglie righe vuote (grep -v '^$'), rimuove spazi e tab (tr -d), deduplica. Poi usa users_clean.txt.
Attenzione a tr -d ' \t': cancella gli spazi ovunque, anche in mezzo alla parola. Per gli username va benissimo (non contengono spazi). Ma se un giorno la tua wordlist contiene valori con spazi legittimi — password tipo correct horse battery, o frasi — tr -d te li distruggerebbe. In quel caso vuoi togliere solo gli spazi a inizio/fine riga, non quelli interni, e allora usi:
sed 's/^[[:space:]]*//; s/[[:space:]]*$//' input.txt | grep -v '^$' | sort -u > output.txtUn carattere invisibile che ti fregherà prima o poi
Aggiungo l’insidia più subdola: i file creati o modificati su Windows (o copiati da certi editor) hanno i fine-riga \r\n invece di \n. Quel \r (carriage return) è invisibile ma viene inviato nella richiesta, quindi il server riceve admin\r e non fa match — identico sintomo al tuo problema di oggi, ma senza che tu veda nessuno spazio. Se un giorno una lista “sembra pulita” ma non matcha, sospetta i \r:
bash
tr -d '\r' < input.txt > output.txtoppure dos2unix input.txt.
Il principio generale
La regola da interiorizzare non è “usa quel filtro”, è: una wordlist custom è da considerarsi sporca finché non l’hai verificata. Prima di darla in pasto a ffuf/hydra/qualsiasi tool, dài un’occhiata veloce con:
bash
cat -A users.txt | headcat -A ti mostra i caratteri invisibili: ‘afineriga(ilnewlinenormale),‘I‘peritab,‘M‘perilfamigerato‘‘˚.Sevedispaziprimadel‘ a fine riga (il newline normale), ^I per i tab, ^M per il famigerato \r. Se vedi spazi prima del ‘afineriga(ilnewlinenormale),‘I‘peritab,‘M‘perilfamigerato‘‘˚.Sevedispaziprimadel‘, o dei ^M, o righe con solo $, sai che devi pulire — e quale pulizia serve. Così non tiri a indovinare: guardi cos’ha che non va, esattamente come per i filtri di ffuf.
In sintesi: sì, prendi l’abitudine di sanificare, ma igienizza in base a cosa il file ha davvero dentro (cat -A te lo dice), non applicando sempre lo stesso comando a scatola chiusa — perché tr -d ' \t' su una lista di passphrase con spazi legittimi ti creerebbe il problema opposto.