Skip to main content
Bruno Menozzi aka Zeroc00i
Back to homepage

Como evito duplicados em Bugbounty?

Salve, pessoal! Sejam bem-vindos à nossa nova série sobre Bug Bounty!

Para quem acompanha nosso grupo VIP no Telegram, este post é uma prévia do conteúdo detalhado que já compartilhamos por lá em vídeo. Para ter acesso a explicações mais aprofundadas e insights exclusivos, junte-se ao nosso grupo VIP através deste link!


Nesta primeira parte, vamos mergulhar em um dos maiores desafios dos bug hunters: os temidos relatórios duplicados.

A Frustração dos Duplicados

É um cenário comum: você investe tempo e esforço, encontra uma vulnerabilidade, prepara um relatório impecável e, ao enviá-lo, recebe a notificação de que seu achado é um “duplicado”.

Isso acontece com frequência, especialmente para quem está começando ou para aqueles que migram de programas VDP (Vulnerability Disclosure Program), onde o objetivo é apenas pontuação, para programas pagos, onde a recompensa financeira depende da originalidade do seu achado.

A explicação para essa recorrência de duplicados é simples, mas muitas vezes ignorada: a competitividade no universo do Bug Bounty e a maturidade das empresas que oferecem esses programas.

Pessoa pensativa diante de uma tela cheia de código, simbolizando a frustração ao encontrar um bug que já foi reportado

Bug Bounty vs. Pentest: Entendendo as Diferenças

Muitos profissionais vêm do mundo do pentest (teste de intrusão) e esperam ter o mesmo sucesso no Bug Bounty. No entanto, há uma diferença crucial:

  • Pentest: A competitividade geralmente se resume a “quando foi o último pentest executado nesta empresa?”. O escopo e o tempo são limitados, e você é um dos poucos a testar.
  • Bug Bounty: Centenas, ou até milhares, de hunters podem estar atacando o mesmo alvo simultaneamente. Enquanto você envia uma requisição para um endpoint explorando uma vulnerabilidade X com seu conhecimento Y e usando a ferramenta Z, pode ter alguém do outro lado do mundo fazendo exatamente a mesma coisa, talvez com um background ou uma ferramenta ligeiramente diferente. É uma corrida contra o tempo e contra todos.

Insanidade é Continuar Fazendo o Mesmo

A famosa frase de Albert Einstein se aplica perfeitamente aqui: “Insanidade é continuar fazendo sempre a mesma coisa e esperar resultados diferentes.”

Se a maioria está usando as mesmas ferramentas e as mesmas metodologias, é natural que os resultados sejam semelhantes – e, consequentemente, que os duplicados se acumulem.

Para sair desse ciclo, precisamos pensar diferente.

Reconhecimento: Você está usando as mesmas ferramentas que todos?

Vamos pegar a fase de reconhecimento como exemplo. Ao iniciar um programa de Bug Bounty, você acessa a página (HackerOne, Bugcrowd, etc.), analisa o escopo e os domínios. Como você começa a busca?

Provavelmente, você executa algumas das ferramentas mais populares:

  • Sublist3r
  • Amass
  • MassDNS
  • Findomain
  • Chaos client
  • ShuffleDNS (para permutação de DNS)
  • DNSx
  • Subfinder
  • Assetfinder
  • Censys
  • Shodan
  • crt.sh
  • httprobe
  • gobuster
  • dirsearch
  • Naabu
  • Kiterunner
  • Gau
  • Waybackurls
  • Katana
  • Dnsenum
  • fierce
  • Altdns
  • aquatone

Se você usa alguma dessas, sinto muito informar: você não é especial.

Centenas de milhares de bug hunters estão utilizando exatamente as mesmas ferramentas.

Elas seguem uma lógica específica, um caminho pré-definido, e o resultado será o mesmo para todos que as executam da mesma forma.

O Caso HTTPX: Pequenos Detalhes, Grandes Diferenças

Vamos a um exemplo prático: a ferramenta HTTPX, amplamente utilizada para verificar a acessibilidade de URLs e a exposição de serviços HTTP.

Você usa HTTPX?

Tenho certeza que sim, ou já ouviu falar de alguém que usa. O HTTPX faz requisições HTTP para verificar se uma URL está ativa e respondendo.

Recentemente, eu descobri um comportamento do HTTPX que me fez não encontrar uma vulnerabilidade específica em uma aplicação que eu sabia que existia. Parece simples, mas o detalhe está na forma como o HTTPX manipula URLs com parâmetros vazios.

O Problema: Quando o HTTPX recebe uma URL com um parâmetro vazio na query string, como https://exemplo.com/?parametro=, ele remove o sinal de igual (=). A URL se torna https://exemplo.com/?parametro.

A Diferença Crítica: Para quem programa, a diferença entre um valor vazio (empty string "") e um valor nulo (null) é gritante.

  • Com igual (?parametro=): Universalmente, é interpretado como uma chave (parametro) com um valor de string vazia (""). O backend recebe a chave esperada com um valor vazio.
  • Sem igual (?parametro): Frequentemente, é interpretado como uma chave (parametro) com um valor nulo (null).

Sistemas como ASP.NET no IIS e Ruby on Rails fazem essa interpretação do “sem o igual” como valor nulo.

Na aplicação que eu estava testando, que usava ASP.NET, eu precisava que o parâmetro fosse interpretado como string vazia para acionar o comportamento vulnerável. Com o HTTPX removendo o =, a aplicação recebia um valor nulo, resultando em um erro e não acionando a falha que eu esperava.

Se eu confiasse cegamente no HTTPX, eu teria descartado aquele alvo como “não vulnerável”. Aqui está a diferença: questionar as ferramentas, entender o que elas realmente fazem e como isso afeta o resultado.

Nuclei e a Barreira dos WAFs

Ok, você pode pensar: “então não vou usar HTTPX”. E o Nuclei? O que você pode estar deixando para trás com ele?

Vamos supor que você está usando um template do Nuclei direcionado a uma tecnologia específica que sua aplicação usa, e o backend é realmente vulnerável. Tudo certo, não? O que pode dar errado?

Um Firewall (WAF) pode dar errado!

Quando o Nuclei encontra um WAF (Web Application Firewall), ele pode retornar que a falha não foi explorável ou que não há falha. Você assume que o alvo não é vulnerável e o descarta.

O Exemplo do Log4j e a Sacada dos Hunters

Pense na vulnerabilidade Log4j. Assim que foi descoberta, os maiores hunters e equipes de segurança foram atrás, encontrando muitas falhas. As empresas, para corrigir rapidamente, adicionaram camadas de proteção, como WAFs (Cloudflare é um exemplo).

O Cloudflare, por exemplo, rapidamente aprendeu os payloads de Log4j. Se você rodasse um template padrão do Nuclei contra um alvo protegido pelo Cloudflare, ele seria bloqueado, retornaria um erro (como “comportamento indevido detectado” ou um captcha), e você pensaria que a vulnerabilidade não existe.

A Sacada: Hunters experientes começaram a criar payloads e assinaturas de Log4j que o Cloudflare não conseguiria detectar. Eles buscavam bypasses para o WAF, permitindo que a exploração passasse despercebida.

Um hunter no Twitter compartilhou um bypass de Log4j que ele capturou dos próprios logs do seu servidor. Isso mostra a inteligência por trás: quando uma nova vulnerabilidade surge, o mundo inteiro tenta escaneá-la (para fins maliciosos ou Bug Bounty). Ao analisar esses logs, ele encontrou um payload que não era detectado pelo Cloudflare.

Seja o Caçador Diferente (em habilidades, não ferramentas)

Esta é a essência de ser diferente, de pensar fora da caixa, de buscar bypasses e de contornar o senso comum.

Se você fizer o que todos fazem, você terá os mesmos resultados que todos. A não ser que você seja o primeiro, mas a corrida pela velocidade em automação pode te impedir de aprofundar no programa e se tornar um especialista.

Minha metodologia é focar em ser diferente, em ir a fundo nos programas e entender suas nuances.


Conclusão e Próximos Passos

Esta foi a Parte 1 da nossa série “Como sair dos duplicados em Bug Bounty?”. Abordamos a importância de questionar as ferramentas, entender seus comportamentos e buscar bypasses para defesas comuns. Falamos sobre HTTPX e Nuclei, mas há muito mais por vir!

O grupo VIP teve acesso a isso antes e acesso a um video explicando tudo isso de forma visual!

Nas próximas partes, exploraremos outras fases da etapa de exploração e traremos mais insights para te ajudar a se diferenciar no mundo do Bug Bounty.

Espero que tenham gostado! Qualquer dúvida, pode mandar no grupo aberto ou no VIP. Tamo junto!

E não se esqueça: para aprofundar ainda mais nesse assunto e ter acesso a todo o conteúdo da nossa saga em primeira mão, junte-se ao nosso grupo VIP no Telegram!