hacktricks/pentesting-web/2fa-bypass.md
2023-06-06 18:56:34 +00:00

5.7 KiB

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Burlando autenticação de dois fatores (2FA)

Burla direta

Para burlar o 2FA, basta tentar acessar diretamente o próximo endpoint (você precisa saber o caminho do próximo endpoint). Se isso não funcionar, tente alterar o cabeçalho Referrer como se você tivesse vindo da página 2FA.

Reutilização de token

Talvez você possa reutilizar um token previamente usado dentro da conta para autenticar.

Compartilhamento de tokens não utilizados

Verifique se você pode obter o token da sua conta e tente usá-lo para burlar o 2FA em uma conta diferente.

Token vazado

O token vazou em uma resposta da aplicação web?

Permissão de sessão

Usando a mesma sessão, inicie o fluxo usando sua conta e a conta da vítima. Quando chegar ao ponto 2FA em ambas as contas, conclua o 2FA com sua conta, mas não acesse a próxima parte. Em vez disso, tente acessar a próxima etapa com o fluxo da conta da vítima. Se o back-end apenas definir um booleano dentro de suas sessões dizendo que você passou com sucesso pelo 2FA, você poderá burlar o 2FA da vítima.

Função de redefinição de senha

Em quase todas as aplicações web, a função de redefinição de senha faz login automaticamente no usuário após o procedimento de redefinição ser concluído. Verifique se um e-mail é enviado com um link para redefinir a senha e se você pode reutilizar esse link para redefinir a senha quantas vezes quiser (mesmo que a vítima altere seu endereço de e-mail).

OAuth

Se você puder comprometer a conta do usuário em uma plataforma de OAuth confiável (Google, Facebook...)

Força bruta

Falta de limite de taxa

Existe algum limite no número de códigos que você pode tentar, para que você possa simplesmente forçar a entrada? Tenha cuidado com um possível limite de taxa "silencioso", sempre tente vários códigos e depois o real para confirmar a vulnerabilidade.

Limite de fluxo, mas sem limite de taxa

Nesse caso, há um limite de fluxo (você tem que forçar a entrada muito devagar: 1 thread e algum tempo de espera antes de 2 tentativas), mas sem limite de taxa. Então, com tempo suficiente, você pode ser capaz de encontrar o código válido.

Reenviar código e redefinir o limite

Existe um limite de taxa, mas quando você "reenvia o código", o mesmo código é enviado e o limite de taxa é redefinido. Então, você pode forçar a entrada do código enquanto o reenvia, para que o limite de taxa nunca seja atingido.

Burla de limite de taxa do lado do cliente

{% content-ref url="rate-limit-bypass.md" %} rate-limit-bypass.md {% endcontent-ref %}

Falta de limite de taxa na conta do usuário

Às vezes, você pode configurar o 2FA para algumas ações dentro da sua conta (alterar e-mail, senha...). No entanto, mesmo nos casos em que há um limite de taxa quando você tentou fazer login, não há nenhum limite de taxa para proteger as ações dentro da conta.

Falta de limite de taxa ao reenviar o código via SMS

Você não poderá burlar o 2FA, mas poderá desperdiçar o dinheiro da empresa.

Regeneração infinita de OTP

Se você puder gerar um novo OTP infinitas vezes, o OTP é simples o suficiente (4 números) e você pode tentar até 4 ou 5 tokens por OTP gerado, você pode simplesmente tentar os mesmos 4 ou 5 tokens todas as vezes e gerar OTPs até que corresponda aos que você está usando.

CSRF/Clickjacking

Verifique se há uma vulnerabilidade de Cross Site Request Forgery (CSRF) ou Clickjacking para desativar o 2FA.

Funcionalidade de lembrar-me

Se a funcionalidade "lembrar-me" usa um novo cookie com um código adivinhável, tente adivinhá-lo.

Endereço IP

Se a funcionalidade "lembrar-me" estiver vinculada ao seu endereço IP, você pode tentar descobrir o endereço IP da vítima e se passar por ela usando o cabeçalho X-Forwarded-For.

Versões antigas

Subdomínios

Se você puder encontrar alguns subdomínios de "teste" com a funcionalidade de login, eles podem estar usando versões antigas que não suportam 2FA (então é diretamente