A maioria das pessoas aprende a usar o ffuf do mesmo jeito: copia um comando de um guia rápido, aponta para um alvo e recebe de volta 3.000 resultados que dizem todos Status: 200. Nenhum deles é real. O ffuf é um fuzzer web rápido escrito em Go, e seu verdadeiro diferencial não é a velocidade, é a filtragem que transforma aquela parede de lixo nos quatro caminhos que importam. Essa habilidade separa uma varredura inútil de um achado que você consegue documentar em um relatório de teste de invasão.
Este guia passa pela instalação, pela palavra-chave FUZZ, pela filtragem de respostas e pelos modos de fuzzing que vão muito além da força bruta de diretórios. Cada comando abaixo foi executado contra um alvo real e cada bloco de saída é autêntico, não uma aproximação. Quando quiser um alvo próprio, nosso lab Corporate Directory Hunt é um site corporativo que roda no navegador, com uma área administrativa escondida, feito exatamente para essa técnica.
Resumo: o ffuf ("Fuzz Faster U Fool") é um fuzzer web escrito em Go que substitui a palavra-chave FUZZ em qualquer ponto de uma requisição pelas entradas de uma wordlist. Rode ffuf -w lista.txt -u http://alvo/FUZZ para achar caminhos ocultos e depois corte os falsos positivos com -fs (filtro por tamanho) ou -ac (autocalibragem). Como o FUZZ pode ficar em uma URL, em um cabeçalho ou nos dados POST, o ffuf também faz fuzzing de parâmetros, hosts virtuais e formulários de login.
O que é o ffuf?
O ffuf é um fuzzer web rápido escrito em Go que descobre conteúdo oculto substituindo entradas de uma wordlist em qualquer parte de uma requisição HTTP. Você marca o ponto que quer testar com a palavra-chave FUZZ, entrega uma wordlist e a ferramenta informa quais substituições o servidor trata de forma diferente das demais.
O nome é uma sigla para "Fuzz Faster U Fool", o que já diz mais ou menos quão a sério o projeto se leva. A ferramenta existe desde novembro de 2018, tem licença MIT e reúne cerca de 16.600 estrelas no GitHub. A versão atual no momento desta publicação é a v2.2.1, lançada em julho de 2026.
O Kali Linux descreve o pacote como um "fuzzer web rápido escrito em Go que permite a descoberta típica de diretórios, a descoberta de hosts virtuais (sem registros DNS) e o fuzzing de parâmetros GET e POST". Essa lista é o ponto importante. A maioria das ferramentas de descoberta de conteúdo só percorre caminhos. O ffuf trata a requisição inteira como fuzzável.
Essa única decisão de projeto explica por que a ferramenta continua útil muito depois de você superar a força bruta de diretórios:
http://alvo/FUZZencontra diretórios e arquivos ocultoshttp://alvo/api?FUZZ=1encontra parâmetros de consulta não documentados-H "Host: FUZZ.alvo.com"encontra hosts virtuais sem registro DNS-d "user=FUZZ&pass=x"enumera nomes de usuário válidos em um formulário de login
Mesma ferramenta, mesmas flags, quatro trabalhos diferentes. Depois que a palavra-chave FUZZ faz sentido, todo o resto da ferramenta é filtragem.
Como instalar o ffuf
O ffuf já vem no Kali Linux e no Parrot OS. Se estiver faltando, ou se você usa outro sistema, escolha a linha que corresponde ao seu ambiente.
Kali, Debian e Ubuntu
sudo apt update && sudo apt install ffuf
macOS e Windows
brew install ffuf # macOS
scoop install ffuf # Windows, Scoop
winget install ffuf.ffuf # Windows, winget
Sim, o ffuf roda nativamente no Windows. É um binário Go único, sem dependência de runtime, então não exige WSL nem um ambiente Python para brigar.
Direto do código-fonte
Os pacotes das distribuições ficam para trás. Para pegar a versão mais nova você precisa do Go 1.20 ou superior:
go install github.com/ffuf/ffuf/v2@latest
Isso coloca o binário em ~/go/bin/. Adicione esse diretório ao seu PATH se o shell não encontrar o ffuf depois. Repare no /v2 no caminho do módulo: deixá-lo de fora baixa uma versão v1 de anos atrás, uma falha de instalação comum.
Confirme que funcionou
ffuf -V
Qualquer versão do ramo 2.x vai bater com os exemplos daqui. Builds instalados com go install mostram uma string de versão de desenvolvimento em vez da tag de release, porque o ffuf deriva a versão da tag do git e uma instalação por módulo não tem nenhuma. Isso é cosmético, não é instalação quebrada.
Sua primeira varredura com ffuf
Toda varredura precisa de duas coisas: uma wordlist com -w e uma URL com -u contendo a palavra FUZZ. Nada além disso é obrigatório.
ffuf -w /usr/share/wordlists/dirb/common.txt -u http://alvo.com/FUZZ
O ffuf imprime um banner em ASCII, um resumo da configuração e depois os resultados conforme eles chegam. Este é o cabeçalho real de uma varredura contra um site corporativo de teste:
:: Method : GET
:: URL : http://127.0.0.1:8088/FUZZ
:: Wordlist : FUZZ: /home/kali/words.txt
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200-299,301,302,307,401,403,405,500
Dois valores padrão ali merecem ser memorizados. O ffuf roda 40 threads simultâneas, quatro vezes o padrão de 10 do Gobuster, e é daí que vem boa parte da sua fama de rápido. E o matcher padrão exibe qualquer resposta na faixa 200-299,301,302,307,401,403,405,500, ou seja, os 404 ficam ocultos e todo o resto é reportado.
Agora os resultados dessa mesma varredura, 15 palavras contra o alvo:
dashboard [Status: 200, Size: 162, Words: 14, Lines: 1, Duration: 0ms]
uploads [Status: 301, Size: 101, Words: 4, Lines: 1, Duration: 1ms]
images [Status: 200, Size: 162, Words: 14, Lines: 1, Duration: 1ms]
backup [Status: 301, Size: 101, Words: 4, Lines: 1, Duration: 2ms]
login.php [Status: 200, Size: 119, Words: 6, Lines: 1, Duration: 2ms]
contact [Status: 200, Size: 162, Words: 14, Lines: 1, Duration: 3ms]
admin [Status: 301, Size: 101, Words: 4, Lines: 1, Duration: 3ms]
about [Status: 200, Size: 162, Words: 14, Lines: 1, Duration: 3ms]
portal [Status: 200, Size: 162, Words: 14, Lines: 1, Duration: 0ms]
config.php [Status: 200, Size: 162, Words: 14, Lines: 1, Duration: 1ms]
js [Status: 200, Size: 162, Words: 14, Lines: 1, Duration: 1ms]
index [Status: 200, Size: 162, Words: 14, Lines: 1, Duration: 2ms]
api [Status: 200, Size: 162, Words: 14, Lines: 1, Duration: 2ms]
css [Status: 200, Size: 162, Words: 14, Lines: 1, Duration: 3ms]
secret [Status: 200, Size: 162, Words: 14, Lines: 1, Duration: 4ms]
Quinze palavras na entrada, quinze acertos na saída. Toda palavra "existe", inclusive secret e dashboard, que não existem. Este é o momento em que a maioria dos iniciantes aprende a filtrar ou desiste discretamente da ferramenta.
Leia as colunas antes de ler os resultados. Status é o código HTTP, Size é o corpo da resposta em bytes, Words e Lines contam o conteúdo do corpo e Duration é o tempo de ida e volta. Size, Words e Lines existem justamente para você ter algo em que filtrar quando o Status é inútil, que é exatamente a situação acima.
Eliminando o ruído com filtros
A varredura acima caiu em um soft 404: um servidor que responde a páginas inexistentes com uma simpática página de "página não encontrada" e um HTTP 200 em vez de um 404 de verdade. Os códigos de status deixam de significar qualquer coisa, então você filtra pelo corpo da resposta.
Olhe outra vez para os resultados falsos. Todos compartilham Size: 162, porque são todos a mesma página. Os achados reais têm tamanhos diferentes: 101 e 119. Então filtre o 162 com -fs:
ffuf -w words.txt -u http://alvo.com/FUZZ -fs 162
login.php [Status: 200, Size: 119, Words: 6, Lines: 1, Duration: 0ms]
uploads [Status: 301, Size: 101, Words: 4, Lines: 1, Duration: 0ms]
admin [Status: 301, Size: 101, Words: 4, Lines: 1, Duration: 1ms]
backup [Status: 301, Size: 101, Words: 4, Lines: 1, Duration: 2ms]
De quinze resultados para quatro, e os quatro são legítimos. Esse é o truque inteiro, e é a coisa mais útil que se pode aprender sobre esta ferramenta.
Filtros e matchers
O ffuf oferece dois conjuntos espelhados de flags. Filtros (-f*) escondem respostas. Matchers (-m*) exibem apenas certas respostas. Mesmos critérios, direção oposta.
| Critério | Filtro (esconder) | Matcher (exibir) |
|---|---|---|
| Código de status HTTP | -fc 404,403 | -mc 200,301 |
| Tamanho da resposta em bytes | -fs 162 | -ms 4096 |
| Contagem de palavras | -fw 14 | -mw 42 |
| Contagem de linhas | -fl 1 | -ml 8 |
| Regex no corpo | -fr "not found" | -mr "admin" |
| Tempo de resposta | -ft >100 | -mt >100 |
Comece pelo -fs, porque uma página de erro estática tem sempre o mesmo número de bytes. Passe para -fw quando a página embutir algo variável, como um horário ou o caminho solicitado: a contagem de palavras costuma ficar estável enquanto a de bytes varia. Use -fr quando nada numérico for estável mas a redação for: -fr "Page not found" mata o ruído independentemente do tamanho.
Uma flag que passa despercebida: -mc all. Ela desativa por completo o matcher de status padrão e mostra todas as respostas, inclusive os 404. Combine com um filtro de tamanho quando quiser ver tudo o que o servidor faz antes de decidir o que é interessante.
Deixe o ffuf resolver com -ac
Descobrir o tamanho do ruído na mão cansa. A flag -ac automatiza isso: antes da varredura de verdade, o ffuf requisita alguns caminhos que com certeza não existem, mede o que volta e monta os filtros para você.
ffuf -w words.txt -u http://alvo.com/FUZZ -ac
Na prática, deixe o -ac como padrão e só volte para um -fs manual quando a autocalibragem errar. Costuma não errar. Onde ela sofre é num servidor que varia a página de erro a cada requisição, e aí -fr sobre uma frase fixa da página vira a opção confiável.
Fuzzing além dos diretórios
Força bruta de diretórios é o exemplo dos tutoriais, não o motivo para usar o ffuf. O FUZZ funciona em qualquer ponto da requisição, e os quatro trabalhos abaixo são o que garante o lugar da ferramenta no seu fluxo.
Extensões de arquivo
Uma wordlist pura testa só nomes de diretórios. A flag -e acrescenta extensões a cada palavra para que arquivos também sejam testados:
ffuf -w words.txt -u http://alvo.com/FUZZ -e .php,.bak,.txt -fs 162
login.php [Status: 200, Size: 119, Words: 6, Lines: 1, Duration: 0ms]
admin [Status: 301, Size: 101, Words: 4, Lines: 1, Duration: 0ms]
uploads [Status: 301, Size: 101, Words: 4, Lines: 1, Duration: 4ms]
config.php.bak [Status: 200, Size: 83, Words: 7, Lines: 5, Duration: 0ms]
backup [Status: 301, Size: 101, Words: 4, Lines: 1, Duration: 4ms]
Ali está o config.php.bak, e neste caso ele continha credenciais de banco de dados em texto puro. Vale entender exatamente por que isso funcionou, porque é uma armadilha: o -e acrescenta a extensão à palavra, então esse acerto exigia config.php na wordlist para gerar config.php.bak. Uma lista contendo apenas config teria testado config.bak e não teria achado nada. Caçar arquivos de backup exige uma lista de nomes de arquivo completos, não nomes soltos de diretório.
Parâmetros de consulta ocultos
Parâmetros não documentados são onde moram os bugs interessantes: chaves de depuração, referências de identificadores, flags de funcionalidade que ninguém removeu. Coloque o FUZZ no nome do parâmetro e dê a cada requisição um valor descartável:
ffuf -w params.txt -u "http://alvo.com/api/status?FUZZ=1" -fs 16
debug [Status: 200, Size: 63, Words: 8, Lines: 1, Duration: 0ms]
id [Status: 200, Size: 29, Words: 4, Lines: 1, Duration: 1ms]
Aqui o -fs 16 filtra a resposta de 16 bytes que o endpoint devolve quando um parâmetro é ignorado. Dois parâmetros alteraram a saída: id, que vale testar para referências diretas inseguras a objetos, e debug, que devolveu o número do build e o nome do banco. Nenhum dos dois aparecia em documentação alguma.
Hosts virtuais
Muitos servidores hospedam vários sites em um único IP e escolhem entre eles pelo cabeçalho Host. Esses sites extras muitas vezes não têm registro DNS nenhum, então nada menos que o fuzzing do cabeçalho vai encontrá-los:
ffuf -w hosts.txt -u http://alvo.com/ -H "Host: FUZZ.alvo.com" -fs 68
staging [Status: 200, Size: 83, Words: 6, Lines: 1, Duration: 1ms]
A URL nunca muda, então toda requisição que não corresponde a um vhost real devolve o site padrão com um tamanho constante. Filtre esse tamanho e os sobreviventes são os hosts ocultos. Ambientes de homologação e desenvolvimento são a pescaria habitual, e costumam ser o elo mais fraco da máquina: código mais antigo, modo de depuração ligado, dados reais de produção.
Dados POST e formulários de login
O FUZZ funciona também no corpo da requisição. Esta é uma enumeração de nomes de usuário contra um formulário de login que vaza a diferença entre uma senha errada e um usuário inexistente:
ffuf -w users.txt -u http://alvo.com/login.php -X POST \
-d "user=FUZZ&pass=test" \
-H "Content-Type: application/x-www-form-urlencoded" \
-fr "No such user"
admin [Status: 200, Size: 51, Words: 4, Lines: 1, Duration: 1ms]
Todo nome de usuário inválido devolveu "No such user" e foi filtrado pelo -fr. A única conta que sobreviveu respondeu "Wrong password", o que confirma que ela existe. Se quiser a metodologia completa em torno desse tipo de sondagem de API, o capítulo de fuzzing de API do nosso curso de segurança de APIs mostra onde isso entra em uma avaliação real.
Trabalhando com várias wordlists
Passe -w mais de uma vez, rotule cada lista com uma palavra-chave própria e o ffuf vai fazer fuzzing em várias posições ao mesmo tempo:
ffuf -w params.txt:PARAM -w users.txt:VAL \
-u "http://alvo.com/api/status?PARAM=VAL" -fs 16 -v
A flag -mode decide como as listas são combinadas:
- clusterbomb (padrão) - todas as combinações de todas as listas. Duas listas de 100 palavras produzem 10.000 requisições. Use quando não fizer ideia de quais pares são válidos.
- pitchfork - as listas avançam em sincronia: a primeira com a primeira, a segunda com a segunda. Use para dados pareados, como nomes de usuário e as senhas correspondentes de um vazamento.
- sniper - uma wordlist só, testada em cada posição FUZZ por vez em vez de todas ao mesmo tempo.
Repare no -v naquele comando. Com uma wordlist, o ffuf imprime a palavra que acertou. Com várias, a linha de resultado mostra apenas as métricas e você não consegue saber qual combinação a produziu. O modo verboso acrescenta a URL completa e o valor de cada palavra-chave:
[Status: 200, Size: 35, Words: 4, Lines: 1, Duration: 0ms]
| URL | http://127.0.0.1:8088/api/status?id=support
* PARAM: id
* VAL: support
Varreduras com várias wordlists sem -v produzem resultados com os quais você não consegue trabalhar. Coloque a flag sempre.
Guia rápido de comandos do ffuf
As flags que vale conhecer, agrupadas pelo que você está de fato tentando fazer.
| Flag | Função |
|---|---|
-w | Wordlist, opcionalmente caminho:PALAVRACHAVE |
-u | URL alvo contendo FUZZ |
-e | Extensões a acrescentar (.php,.bak) |
-t | Threads simultâneas (padrão 40) |
-ac | Autocalibrar filtros contra caminhos falsos |
-fs / -fw / -fl / -fr | Filtrar por tamanho, palavras, linhas ou regex |
-mc | Casar códigos de status, ou all |
-recursion | Enfileirar uma nova varredura em cada diretório encontrado |
-recursion-depth | Limitar a profundidade da recursão |
-H | Cabeçalho personalizado (Host, Cookie, Authorization) |
-X / -d | Método HTTP e corpo POST |
-x | Passar por um proxy como o Burp |
-rate / -p | Requisições por segundo, atraso entre requisições |
-o / -of | Arquivo e formato de saída |
-v | Verboso: mostra URLs completas e valores das palavras-chave |
-ic | Ignorar linhas de comentário # na wordlist |
Recursão
O Gobuster não sabe recursar. O ffuf sabe, e esse é um dos motivos mais fortes para trocar:
ffuf -w words.txt -u http://alvo.com/FUZZ -recursion -recursion-depth 2 -ac
Cada diretório encontrado vira um trabalho na fila, anunciado na saída no momento em que acontece:
admin [Status: 301, Size: 101, Words: 4, Lines: 1, Duration: 0ms]
[INFO] Adding a new job to the queue: http://127.0.0.1:8088/admin/FUZZ
backup [Status: 301, Size: 101, Words: 4, Lines: 1, Duration: 1ms]
[INFO] Adding a new job to the queue: http://127.0.0.1:8088/backup/FUZZ
Defina sempre o -recursion-depth. O padrão 0 significa ilimitado, e em um site com árvore de diretórios profunda uma varredura recursiva sem limite com uma wordlist grande vai rodar até você matá-la. Profundidade 2 basta de sobra para uma primeira passada.
Salvando resultados
ffuf -w words.txt -u http://alvo.com/FUZZ -ac -o results.json -of json
Os formatos são json, ejson, html, md, csv, ecsv e all. O arquivo JSON registra a linha de comando completa ao lado dos resultados, o que importa mais do que parece: três dias depois, na hora de escrever o relatório, o arquivo diz exatamente quais flags produziram aquele achado.
Passando despercebido
Quarenta threads contra um servidor de produção pequeno é um teste de carga disfarçado. Segure o ritmo:
ffuf -w words.txt -u http://alvo.com/FUZZ -ac -rate 20 -p 0.1-0.5
O -rate 20 limita a varredura inteira a 20 requisições por segundo, e o -p 0.1-0.5 acrescenta um atraso aleatório entre cada uma para que o padrão de tráfego não fique perfeitamente regular. Em um alvo com limite de taxa, essa é a diferença entre uma varredura completa e uma parede de 429.
ffuf, Gobuster ou DirBuster?
Essas três ferramentas se sobrepõem, e escolher entre elas depende mais do que você está fazendo do que de qual é objetivamente melhor.
| Recurso | ffuf | Gobuster | DirBuster |
|---|---|---|---|
| Velocidade | Rápido (Go, 40 threads) | Rápido (Go, 10 threads) | Lento (Java) |
| Fuzzing de qualquer posição | Sim | Só no modo fuzz | Não |
| Varredura recursiva | Nativa | Não | Sim |
| Filtragem de respostas | Tamanho, palavras, linhas, regex, tempo | Status e tamanho | Básica |
| Autocalibragem | Sim | Manual | Não |
| Modo de subdomínios DNS | Via fuzzing de vhost | Sim | Não |
| Curva de aprendizado | Mais íngreme | Suave | Suave (GUI) |
Minha opinião sincera: aprenda o ffuf como ferramenta principal e mantenha o Gobuster para um trabalho específico. O ffuf ganha em tudo que envolve filtragem de respostas, o que em alvos reais é em todo lugar, e nenhuma outra ferramenta faz fuzzing de cabeçalhos e corpos POST com a sintaxe que você já conhece. O Gobuster fica instalado para a resolução real de subdomínios por DNS, onde o modo dns consulta o DNS diretamente em vez de adivinhar cabeçalhos Host. Se você vem do Gobuster, nosso tutorial de Gobuster faz a correspondência entre as flags, e o guia de wordlists vale para as duas ferramentas sem mudança alguma.
O DirBuster é o ponto fora da curva. É Java sem manutenção com interface gráfica, e as duas ferramentas em Go terminam a mesma wordlist numa fração do tempo. Aprenda-o só se algum curso que você esteja fazendo exigir.
Um último conselho que nada tem a ver com flags: sua wordlist importa mais que sua ferramenta. A coleção SecLists instalada em /usr/share/seclists/Discovery/Web-Content/ é montada a partir de varreduras do mundo real, e trocar uma lista genérica pelo raft-medium-directories.txt vai te render mais achados do que qualquer flag deste artigo. Passe o ffuf pelo Burp Suite com -x http://127.0.0.1:8080 quando quiser guardar cada requisição e resposta para inspecionar depois.
Considerações legais e éticas
Lembrete essencial: o ffuf dispara milhares de requisições em segundos e é indistinguível de um ataque nos logs do servidor, porque é a mesma técnica. Executá-lo contra um sistema que você não possui ou para o qual não tem autorização por escrito é ilegal na maioria dos países, seja qual for a sua intenção.
Fuzzing é barulhento, ativo e fica registrado para sempre. Não existe versão disso que conte como reconhecimento passivo.
Onde o ffuf é permitido
- Testes de invasão cobertos por um contrato assinado que nomeie o alvo dentro do escopo
- Programas de bug bounty cujas regras permitam explicitamente a enumeração automatizada, no limite de taxa que definirem
- Sistemas e aplicações que pertençam a você
- Competições de CTF e labs propositalmente vulneráveis feitos para treino
Programas de bug bounty merecem uma segunda leitura antes de você começar. Muitos limitam a taxa de requisições ou proíbem varredura automatizada por completo, e o -rate existe justamente para você respeitar isso. Um achado enviado a partir de uma varredura que quebrou as regras do programa te tira do programa, não te paga. Para situar a descoberta de conteúdo dentro de uma metodologia estruturada, o Web Security Testing Guide da OWASP documenta a fase de reconhecimento em detalhe.
Perguntas frequentes
Qual é o comando básico do ffuf?
O comando básico do ffuf é ffuf -w wordlist.txt -u http://alvo.com/FUZZ. A flag -w aponta para a wordlist, -u define a URL alvo e a palavra-chave FUZZ marca a posição da requisição em que cada palavra é substituída.
O que significa fuzzing em segurança web?
Fuzzing significa enviar muitas entradas geradas automaticamente para uma aplicação e observar quais provocam uma resposta diferente. Em testes web isso geralmente quer dizer substituir entradas de uma wordlist em caminhos, parâmetros ou cabeçalhos para descobrir conteúdo e comportamentos que não estão vinculados nem documentados em lugar nenhum.
O ffuf é melhor que o Gobuster?
Para a maior parte do trabalho web, sim. O ffuf filtra respostas por tamanho, contagem de palavras, contagem de linhas, regex e tempo de resposta, entra recursivamente nos diretórios que encontra e faz fuzzing de qualquer parte de uma requisição. O Gobuster é mais simples de aprender e mantém uma vantagem clara: o modo dns resolve subdomínios via DNS, algo que o ffuf não faz.
Posso usar o ffuf no Windows?
Pode. O ffuf é um binário Go único, sem dependências de runtime, e roda nativamente no Windows. Instale com scoop install ffuf ou winget install ffuf.ffuf, ou baixe um binário pronto da página de releases do GitHub. O WSL não é necessário.
Por que o ffuf devolve todas as palavras como acerto?
O alvo está devolvendo um soft 404: uma página de "não encontrado" servida com HTTP 200 em vez de 404. Os códigos de status não servem ali, então filtre pelo corpo da resposta. Anote o tamanho em bytes que se repete nos resultados falsos e passe para o -fs, ou deixe o -ac descobrir automaticamente.
Qual é a melhor wordlist para o ffuf?
Comece com /usr/share/wordlists/dirb/common.txt para uma primeira passada rápida e depois vá para o raft-medium-directories.txt do SecLists para profundidade. Ajuste a lista ao trabalho: nomes de diretório para descoberta de caminhos, nomes de arquivo completos para caçar backups e uma lista de parâmetros para fuzzing de query string.
Seus próximos passos
Agora você sabe como usar o ffuf nos quatro trabalhos que cobrem a maior parte da enumeração web: caminhos e arquivos com -e, parâmetros de consulta, hosts virtuais pelo cabeçalho Host e corpos POST para enumeração de nomes de usuário. A flag que torna os quatro utilizáveis é o filtro. Ponha -fs, -fr e -ac na memória muscular e a ferramenta para de produzir ruído e passa a produzir achados.
Ler sobre filtragem não vai te ensinar a reconhecer um soft 404 no mundo real. Rodar a ferramenta, sim. Aponte o ffuf para o nosso lab Corporate Directory Hunt para achar um painel administrativo escondido partindo do zero e depois percorra o curso de ataques web para saber o que fazer com os endpoints que descobrir. Os dois rodam no navegador no plano gratuito da HackerDNA, sem instalação e sem cartão de crédito.
Faz parte da série Teste de Invasão
Artigos relacionados: