Configuração incorreta do SSO do Google levando à aquisição de cont

0 0
Read Time:4 Minute, 36 Second

Eu sou um cara técnico. No entanto, este post não contém detalhes técnicos (mas isso é porque esse bug não requer nenhum). 
Preciso admitir: encontrar esse bug foi pura sorte . 
Nenhuma habilidade estava envolvida .

Algum contexto…

Algumas semanas atrás, um cliente para quem trabalhei no ano passado me ligou porque precisava de ajuda para descrever o serviço que desenvolvemos para ele. Ele ia vender a empresa e estavam sendo solicitados os detalhes técnicos.

Havia um requisito explícito que teria me forçado a examinar todo o código e procurar informações específicas, mas eu estava com preguiça de fazer isso. Então pensei nas minhas opções:

  • Ou passo as próximas duas horas examinando cada linha de código…
  • Ou posso procurar uma ferramenta online que faça o trabalho para mim! ?

Todos nós sabemos como isso termina. Você acaba perdendo seu tempo procurando um serviço e não conseguindo fazer nada. Eu poderia ter gasto meu tempo fazendo isso manualmente.

Sorte minha, tentei procurar uma ferramenta em vez disso.

Descobrindo o bug

Lembrei-me que usei uma página da web há cerca de 3 anos que tinha um recurso semelhante, então decidi investigar.

Uma vez logado, esperava encontrar meus projetos anteriores , mas todos estavam faltando . Em vez disso, muitos repositórios “aleatórios” do GitHub foram anexados à minha conta. Eles eram de uma grande e conhecida empresa… E eles não eram Open Source, eu posso te dizer isso . ?

Por que nunca recebo permissão para publicar o nome dessas empresas? 
Não importa como eu discuta com eles, eles sempre vão querer manter isso em segredo. 
… 
Acho que é por isso que trabalho em ciência da computação e não em política. 
Técnicas de persuasão zero?

De repente, percebi que aquela não era minha conta . Fui para a página de configurações e vi um e-mail diferente . Eu nem sabia como consegui entrar na conta deles.

“ Vamos tentar fazer de novo ”, disse minha mente. Abra um novo perfil do Chrome, vá para a página da web, faça login usando o Google… Novamente . Estou na conta deles.

Foi quando decidi usar uma conta do Google diferente. 
Talvez — pensei — usar um endereço de e-mail diferente me leve a uma conta diferente. E eu estava certo .

Mas então… Padrão detectado?

primeira letra do meu e- mail correspondia à primeira letra da conta do aplicativo.

Coincidência? Não tenho certeza, ainda. Vamos usar vários e-mails:

n*******@domain.com (e-mail do Google) => n********@whatever.com (App) 
e********@domain.com (e-mail do Google) = > e*******@whatever.com (App) 
a*******@domain.com (Google email) => a*******@whatever.com (App) 
z *******@domain.com (e-mail do Google) => z********@whatever.com (Aplicativo)

Então, sim, eu descobri uma maneira de acessar, pelo menos, 35 contas (a-z0–9).

Entendendo o problema

Eventualmente, ao tentar e-mails diferentes, acabei na conta que esperava acessar em primeiro lugar: A conta com meus projetos. Foi aí que percebi qual era o problema: tentei entrar com um e- mail que não estava cadastrado no site. Eu estava entrando quando deveria ter me registrado primeiro.

FFS, essa não é a conta que usei para meus projetos. Eu os armazenei em uma conta diferente e específica que criei usando o Google Suite. 
Eu deveria ter ido para a página de registro em vez de usar o pop-up de login?

Então fui até a página de cadastro , usei um dos e-mails anteriores (um que eu sabia que não existia, mas que me levou a uma conta que não era minha), e me registrei com sucesso . Fiz logout, e quando entrei… estava dentro da conta correta .

Conclusões

Os desenvolvedores presumiram que, se um usuário estivesse usando o pop-up de login , ele deveria estar presente no banco de dados. Isso levou à captura de uma entrada do banco de dados , independentemente de haver uma correspondência exata . 
“Inscrever-se” e “Fazer login” usando SSO devem ter o mesmo fluxo de autenticação e o back-end deve ter decidido se adicionar um novo usuário ao banco de dados ou pegar um existente se os dados corresponderem!

Então, o que você faz, nessas situações?

Este não é um programa de recompensas de bugs, e você não teve acesso para testar o aplicativo em primeiro lugar. Você está em apuros ? 
Bem, você pode ser , mas isso não é o que geralmente acontece.

Procurei o e-mail de suporte e enviei os detalhes: não pedindo uma recompensa , com etapas reproduzíveis e um pedido de desculpas por executar vários testes para entender o problema.

Eles responderam muito rápido, confirmando que o problema foi corrigido e me concedendo algum crédito dentro do aplicativo.

Não é uma recompensa monetária, mas estou feliz de qualquer maneira. – Eu pensei.

A má notícia é que o aplicativo não conseguiu resolver meu problema. Mas ei, no final, alguém acabou pagando pelas duas horas que levei para fazer o trabalho manualmente ?

FONTE: MEDIUM

POSTS RELACIONADOS