Este é um relato de como posso obter uma recompensa crítica $$$$ por Divulgação de PII - Acesso Quebrado

contente

Em nome de Deus ❤️, ó Senhor, ensina-nos o que nos beneficia, e beneficia-nos com o que nos ensinaste, e aumenta nosso conhecimento.

Este é o meu primeiro relatório de Bug Bounty, sinta-se à vontade para me enviar feedback ❤️

Quem sou eu

Primeiro, deixe-me me apresentar, eu sou 0xNayel. Eu sou um caçador de bugs há mais de dois anos no Hackerone. Atualmente, estou entre os 30 melhores no Q4 2024 e em 63º em todo 2024. Encontrei vulnerabilidades na Adobe inDrive Pepsico e em alguns outros programas privados.

Introdução

Neste texto, falarei sobre a maior recompensa que já recebi, que é uma recompensa de 4 dígitos em um programa privado no hackerone. O bug era crítico e complicado, mas direto para explorar. No entanto, levou mais de 2 meses para obter uma resposta. Além disso, um cenário muito estranho aconteceu comigo, e eu vou explicar isso.

Vamos Começar

O escopo do programa era pequeno, eles incluem o aplicativo principal do qual o programa depende diretamente em seu negócio online, ele possui múltiplas funcionalidades, o que é ótimo para mim, pois sabemos que o teste manual é diferente do automatizado. Isso desenvolve sua criatividade e reduz a rotina. Também requer mais esforço, mas vale a pena.

Primeiro, começo a explorar o aplicativo: criar contas, brincar com funções, construir um forte conhecimento sobre as tecnologias utilizadas.

Encontrar o bug foi mais rápido do que eu imaginava, estava nas primeiras horas de exploração dos arquivos js.

Passos que me permitiram encontrar o bug:

  • Eu abri o burp e comecei a enviar requisições do app e vê-las no histórico do burp para identificar a tecnologia e o fluxo que o programa usa
  • Eu encontrei uma coisa estranha que o programa usa métodos diferentes para interagir com o backend, encontrei requisições de API normais (para funções principais) e também requisições GraphQL (para fins de análise)
  • Eu imediatamente enviei uma consulta de introspecção para ver todas as consultas possíveis e comecei a explorá-las, mas eram muitas, então eu abri arquivos js e comecei a procurar qualquer coisa relacionada ao GraphQL
  • Eu encontrei uma consulta chamada companyUserinfo que chamou minha atenção, então voltei para a consulta de introspecção e encontrei um comentário importante na Consulta # Não requer um Token, Vamos testar.
  • Eu noto que a consulta precisa de 3 variáveis, importantes eram storehash que é um valor constante que o usuário atribuiu ao criar a conta, customerId que é um ID de 6 dígitos do usuário cujos dados quero exfiltrar, email não era importante, pois posso deixá-lo vazio.
  • iniciar - testando minha conta (funcionou)
    - testar IDOR de outra conta (funcionou) significa que é vulnerável
    retornando ao comentário que encontrei # Não requer um Token
    - teste para solicitação não autenticada (também funcionou) significa que não há controle de acesso nesta consulta,
    Esta é a consulta:

A resposta foi dados de usuário PII:

  • Então eu faço um POC, é um comando cURL para força bruta em 30 usuários (não há limite de taxa, posso buscar todos os dados dos usuários aqui)

Após relatar:

Enfrentei um cenário estranho, recebi um e-mail após 5 dias de relatório da empresa sobre a conta que usei para me registrar no aplicativo. O conteúdo era que os dados dos usuários da empresa foram exfiltrados e eles corrigiram a vulnerabilidade.

Eu realmente não sei se sou a razão ou se eles foram hackeados por acaso ao mesmo tempo, então tentei reproduzir o bug, mas como eles disseram, já fizeram uma correção. Eu senti que estava atrasado e o relatório não seria aceito porque o hackerone nem sequer fez a triagem do relatório.

A última parte estranha, pois eu não esperava, eles me responderam pagando a recompensa.

Resumir
O autor, 0xNayel, é um caçador de bugs com mais de dois anos de experiência na plataforma Hackerone, onde já encontrou vulnerabilidades em empresas como Adobe e Pepsico. Neste artigo, ele relata sua maior conquista: um bug crítico em um programa privado que resultou em uma recompensa de quatro dígitos. Após mais de dois meses de espera pela resposta, ele descreve o processo de exploração do aplicativo, que envolveu a criação de contas e a análise de arquivos JavaScript. O bug foi encontrado rapidamente, em poucas horas, ao identificar uma consulta GraphQL chamada `companyUserinfo`, que não exigia autenticação e permitia acesso a dados pessoais de usuários. O autor testou a vulnerabilidade e confirmou que era possível extrair informações de outros usuários sem controle de acesso. Após relatar o problema, ele recebeu um e-mail informando que os dados dos usuários foram comprometidos e que a vulnerabilidade foi corrigida. Surpreendentemente, ele recebeu a recompensa, mesmo sem saber se sua descoberta foi a causa do problema.