
BFuzz is currently in beta.
BFuzz è uno strumento di fuzzing basato su input che prende un file .html come input, apre il tuo browser con una nuova istanza e passa molteplici casi di test generati da domato, che si trovano nella cartella recurve di BFuzz. Inoltre, BFuzz è un'automazione che esegue ripetutamente la stessa attività e non modifica i casi di test.
warmachine@ftw:~/BFuzz$ ./generate.sh
warmachine@ftw:~/BFuzz$ python BFuzz.py
Enter the browser type:
1: Chrome
2: Firefox
>>
Eseguire python BFuzz.py chiederà un'opzione per fuzzare Chrome o Firefox. Tuttavia, se si seleziona 2, verrà aperto Firefox (firefox --new-instance) e verrà aperto casualmente uno dei casi di test dalla cartella recurve, creando i log nel terminale. Dopo una pausa di 3 secondi, verrà riaperto Firefox e lo stesso processo continuerà.
BFuzz è un piccolo script .py che permette di aprire il browser, eseguire un caso di test per 12 secondi, poi chiuderlo, attendere 3 secondi e ripetere lo stesso processo.
I casi di test in recurve sono generati da domato
generator.py contiene lo script principale. Utilizza grammar.py come libreria e contiene codice helper aggiuntivo per il fuzzing del DOM.
grammar.py contiene il motore di generazione che è per lo più indipendente dall'applicazione e può quindi essere utilizzato in altri fuzzer basati su generazione (non DOM). Poiché può essere usato come libreria, il suo utilizzo è descritto in una sezione separata più sotto.
I file .txt contengono le definizioni delle grammatiche. Ci sono 3 file principali: html.txt, css.txt e js.txt, che contengono rispettivamente le grammatiche HTML, CSS e JavaScript. Questi file di grammatica principali possono includere contenuto da altri file.
Epiphany Web 3.28.1: CVE-2018-11396, nuovo testcase identificato per CVE-2018-11396
Mozilla Firefox: Stack based buffer overflow bug ID: 1456083 [divenuto DUPLICATO]
Fuzzing del browser tramite BFuzz
Sentiti libero di aprire una PR.
Gestire le eccezioni, aggiungere banner, ottimizzare il codice, modificare i casi di test.