Ffuf (Fuzz Faster U Fool) é uma das ferramentas mais confiáveis para realizar um fuzzing numa aplicação web. Aqui, vamos discutir diversos tópicos, tais como:
- Fuzzing por diretórios
- Fuzzing por arquivos e extensões
- Identificação de hosts escondidos
- Fuzzing por parâmetros PHP
- Fuzzing por valores de parâmetros
Ferramentas como ffuf nos ajuda ao fornecer uma maneira automatizada de realizar um (mas não só) Web Fuzzing em aplicações web ou em componentes de páginas. Isso significa, por exemplo, que nós usemos uma lista para enviar requisições para o servidor web e, se a requisição ao servidor retornar um status code 200, isso significa que a página existe no servidor.
Filtrando resultados
Existem duas maneiras de filtrar os resultados:
- Matchers
- Filters
Eles podem ser utilizados em diferentes contextos para diferentes finalidades. Por exemplo, num caso de Web Fuzzing, onde todas as respostas retornam 200, independente se a página existe ou não, podemos utilizar o parâmetro -fs 900
para determinar o tamanho de uma resposta incorreta para ela não ser considerada.
Parâmetros
Comando | Função |
---|---|
-ic | Ignorar comentários do dicionário sendo utilizado |
-w | Dicionário que será utilizado |
-u | URL que será aplicado o fuzzing |
-recursion | Quando encontrar um diretório considerado, começara um novo fuzzing dentro desse diretório |
-recursion-depth | Limita a quantidade máxima da profundidade da recursão |
-H | Define algum header que será utilizado nas requisições |
-X | Define o método que será utilizado nas requisições |
-d | Define o conteúdo da requisição Post. |
-e | Define qual a extensão dos arquivos do servidor (saiba mais em Type Fuzzing) |
Matchers | |
-mc | Especifica qual tipo de resposta deve ser considerada pela aplicação web (match code) |
Filters | |
-fs | Define um limite mínimo de caracteres para considerar uma resposta (filter size) |
Atenção
A extensão que você passa através do parâmetro
-e
tem que ser algo como.php
. Necessariamente com o.
na frente.