
Crea la tua Wordlist personalizzata per il Fuzzing
CWFF è uno strumento che crea una wordlist di alta qualità per fuzzing/content discovery alla massima velocità possibile usando la concorrenza ed è fortemente ispirato da @tomnomnom e dal suo Who, What, Where, When, Wordlist #NahamCon2020.

CWFF [-h] [--threads] [--github] [--subdomains] [--recursive] [--js-libraries] [--connected-websites] [--juicy-files] [--use-filter-model] [-o] domain
positional arguments:
domain Target website(ofc)
optional arguments:
-h, --help Show this help message and exit
--threads The number of maximum concurrent threads to use (Default:1000)
--github Collect endpoints from a given github repo (ex:https://github.com/google/flax)
--subdomains Extract endpoints from subdomains also while search in the wayback machine!
--recursive Work on extracted endpoints recursively (Adds more endpoints but less accurate sometimes)!
--js-libraries Extract endpoints from JS libraries also, not just the JS written by them!
--connected-websites Include endpoints extracted from connected websites
--juicy-files Include endpoints extracted from juicy files like sitemap.xml and robots.txt
--use-filter-model Filter result endpoints with filter_model file
-o The output directory for the endpoints and parameters. (Default: website name)
Quindi, fondamentalmente raccoglie endpoint e parametri del target e dei suoi sottodomini utilizzando molte fonti di cui parleremo ora:
Molti strumenti scorrono solo la pagina principale di wayback per risparmiare tempo, ma qui scorriamo tutti i record in poco tempo, ma questo fa sì che richieda molto tempo quando si utilizza il flag --subdomains.
<script>CWFF cerca di separare le librerie JS dai file JS effettivamente scritti dagli sviluppatori del sito e lo fa esaminando i nomi dei file JS.
Per impostazione predefinita, CWFF estrae endpoint dai file JS scritti solo dagli sviluppatori; per utilizzare le librerie JS (per lo più non utili) attivare il flag --js-libraries.
--juicy-files, estrae anche endpoint da file come Sitemap.xml e robots.txt (potrebbe aggiungerne altri in futuro)--github, estrae i percorsi da quel repository usando l'API di GitHub (non è necessaria alcuna chiave API).Per chiarezza, CWFF utilizza solo i percorsi di file e directory, quindi non estrae endpoint dall'interno dei file stessi!
--connected-websites, CWFF utilizza l'API di BuiltWith (richiede una chiave ma è gratuita) per estrarre i siti web collegati al target dal profilo di relazione, quindi estrae endpoint dal sorgente di questi siti.Nota: puoi ottenere la tua chiave API da questa pagina e impostare la variabile nel file
API_keys.py.
Dopo aver raccolto gli endpoint da tutte queste fonti, se si utilizza il flag --recursive, CWFF estrae ricorsivamente parti dagli endpoint raccolti.
parseq/javadoc/1.1.0/com diventerà tutti questi endpoint:
parseq/javadoc/1.1.0/com
parseq/javadoc/1.1.0/
parseq/javadoc/
parseq/
javadoc/
1.1.0/
com
Nota: tutti gli endpoint/parametri raccolti vengono puliti e ordinati senza duplicati per ottenere un risultato unico.
Ovviamente dopo tutte queste fonti e questo lavoro, ci saranno molti endpoint indesiderati/inutili tra quelli importanti, e qui entra in gioco il filtraggio per risparmiare tempo e risorse.
In CWFF puoi rilevare e rimuovere gli endpoint indesiderati usando tre metodi:
Tutte queste opzioni di filtro possono essere fornite impostando le variabili nel file filter_model.py e poi usando il flag --use-filter-model all'avvio di CWFF. Se non sai come impostare queste variabili, consulta i commenti che ho lasciato nel file: è quello che uso principalmente e nello screenshot ha ridotto il numero di endpoint raccolti da 26.177 a 3.629.
Nel caso in cui tu abbia dimenticato di usare il filtraggio durante l'esecuzione di CWFF, non preoccuparti, ci penso io 😄
Puoi usare lo script filter.py per filtrare gli endpoint che hai nel modo seguente e caricherà automaticamente il file filter_model.py senza dover rieseguire CWFF:
python filter.py wordlist.txt output.txt
python3 -m pip install -r requirements.txt
python3 cwff.py --help
Se il mio lavoro ti è stato utile, sentiti libero di ringraziarmi offrendomi un caffè.
CWFF è creato per aiutare nei test di penetrazione e non è responsabile per qualsiasi uso improprio o scopi illegali.
Copiare il codice da questo strumento o usarlo in un altro strumento è accettato purché venga menzionata la fonte :smile