
Fuzzing em Navegadores
BFuzz is currently in beta.
O BFuzz é uma ferramenta de fuzzer baseada em entrada que recebe um .html como entrada, abre seu navegador em uma nova instância e passa vários casos de teste gerados pelo domato, que estão presentes na pasta recurve do BFuzz. Além disso, o BFuzz é uma automação que executa a mesma tarefa repetidamente e não modifica nenhum caso de teste.
warmachine@ftw:~/BFuzz$ ./generate.sh
warmachine@ftw:~/BFuzz$ python BFuzz.py
Enter the browser type:
1: Chrome
2: Firefox
>>
Executar python BFuzz.py perguntará se deseja fazer fuzzing no Chrome ou Firefox; no entanto, se selecionar 2, isso abrirá o firefox com firefox --new-instance e abrirá aleatoriamente qualquer caso de teste da pasta recurve, criará os logs no terminal, aguardará 3 segundos e novamente abrirá o firefox, repetindo o mesmo processo.
O BFuzz é um pequeno script .py que permite abrir o navegador, executar o caso de teste por 12 segundos, depois fechar, aguardar 3 segundos e novamente seguir o mesmo processo.
Os casos de teste em recurve são gerados pelo domato
O generator.py contém o script principal. Ele usa o grammar.py como uma biblioteca e contém código auxiliar adicional para fuzzing de DOM.
O grammar.py contém o motor de geração que é principalmente neutro em relação à aplicação e, portanto, pode ser usado em outros fuzzers baseados em geração (ou seja, não-DOM). Como pode ser usado como uma biblioteca, seu uso é descrito em uma seção separada abaixo.
Os arquivos .txt contêm definições de gramática. Existem 3 arquivos principais: html.txt, css.txt e js.txt, que contêm gramáticas HTML, CSS e JavaScript, respectivamente. Esses arquivos de gramática raiz podem incluir conteúdo de outros arquivos.
Epiphany Web 3.28.1: CVE-2018-11396, novo caso de teste identificado para CVE-2018-11396
Mozilla Firefox: Bug de estouro de buffer baseado em pilha ID: 1456083 [Foi DUPLICADO]
Sinta-se à vontade para enviar um PR.
Tratar exceções, Adicionar banner, Otimizar código, Modificar casos de teste.