
Fuzzing de navegadores
BFuzz is currently in beta.
BFuzz es una herramienta de fuzzing basada en entrada que toma un .html como entrada, abre tu navegador con una nueva instancia y pasa múltiples casos de prueba generados por domato que se encuentran en la carpeta recurve de BFuzz. Además, BFuzz es una automatización que realiza la misma tarea repetidamente y no modifica ningún caso de prueba.
warmachine@ftw:~/BFuzz$ ./generate.sh
warmachine@ftw:~/BFuzz$ python BFuzz.py
Enter the browser type:
1: Chrome
2: Firefox
>>
Al ejecutar python BFuzz.py se pedirá una opción para fuzzear Chrome o Firefox, sin embargo si se selecciona 2 esto abrirá firefox firefox --new-instance y abrirá aleatoriamente cualquier caso de prueba de recurve, creará los logs en la terminal, esperará 3 segundos, luego abrirá firefox nuevamente y el mismo proceso continuará así.
BFuzz es un pequeño script .py que permite abrir el navegador, ejecutar un caso de prueba durante 12 segundos, luego cerrarlo, esperar 3 segundos y nuevamente seguir el mismo proceso.
Los casos de prueba en recurve son generados por domato
generator.py contiene el script principal. Utiliza grammar.py como biblioteca y contiene código auxiliar adicional para el fuzzing de DOM.
grammar.py contiene el motor de generación que es mayoritariamente independiente de la aplicación y, por lo tanto, puede usarse en otros fuzzers basados en generación (es decir, no DOM). Como se puede usar como biblioteca, su uso se describe en una sección separada más abajo.
Los archivos .txt contienen definiciones de gramática. Hay 3 archivos principales, html.txt, css.txt y js.txt que contienen las gramáticas de HTML, CSS y JavaScript, respectivamente. Estos archivos de gramática raíz pueden incluir contenido de otros archivos.
Epiphany Web 3.28.1: CVE-2018-11396, nuevo caso de prueba identificado para CVE-2018-11396
Mozilla Firefox: Desbordamiento de búfer basado en pila ID de error: 1456083 [Marcado como DUPLICADO]
Fuzzing de navegadores mediante BFuzz
Siéntete libre de hacer un PR.
Manejar excepciones, Agregar banner, Optimizar código, Modificar casos de prueba.