hacktricks/pentesting-web/account-takeover.md

8.5 KiB

Assumir o Controle da Conta

Aprenda a hackear a AWS do zero ao herói com htARTE (Especialista em Equipe Vermelha AWS do HackTricks)!

Outras maneiras de apoiar o HackTricks:

Problema de Autorização

O e-mail de uma conta deve ser tentado a ser alterado, e o processo de confirmação deve ser examinado. Se for considerado fraco, o e-mail deve ser alterado para o da vítima pretendida e então confirmado.

Problema de Normalização Unicode

  1. A conta da vítima pretendida victim@gmail.com
  2. Uma conta deve ser criada usando Unicode
    por exemplo: vićtim@gmail.com

Conforme explicado neste vídeo, o ataque anterior também poderia ser feito abusando de provedores de identidade de terceiros:

  • Criar uma conta no provedor de identidade de terceiros com um e-mail semelhante ao da vítima usando algum caractere unicode (vićtim@company.com).
  • O provedor de terceiros não deve verificar o e-mail
  • Se o provedor de identidade verificar o e-mail, talvez você possa atacar a parte do domínio como: victim@ćompany.com e registrar esse domínio e esperar que o provedor de identidade gere a versão ascii do domínio enquanto a plataforma da vítima normaliza o nome de domínio.
  • Faça login via esse provedor de identidade na plataforma da vítima que deve normalizar o caractere unicode e permitir que você acesse a conta da vítima.

Para mais detalhes, consulte o documento sobre Normalização Unicode:

{% content-ref url="unicode-injection/unicode-normalization.md" %} unicode-normalization.md {% endcontent-ref %}

Reutilização de Token de Redefinição

Caso o sistema alvo permita que o link de redefinição seja reutilizado, esforços devem ser feitos para encontrar mais links de redefinição usando ferramentas como gau, wayback, ou scan.io.

Pré Assumir o Controle da Conta

  1. O e-mail da vítima deve ser usado para se inscrever na plataforma, e uma senha deve ser definida (uma tentativa de confirmá-la deve ser feita, embora a falta de acesso aos e-mails da vítima possa tornar isso impossível).
  2. Deve-se aguardar até que a vítima se inscreva usando OAuth e confirme a conta.
  3. Espera-se que a inscrição regular seja confirmada, permitindo o acesso à conta da vítima.

Configuração Incorreta de CORS para Assumir o Controle da Conta

Se a página contiver configurações CORS incorretas, você pode ser capaz de roubar informações sensíveis do usuário para assumir sua conta ou fazer com que ele altere informações de autenticação para o mesmo propósito:

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

CSRF para Assumir o Controle da Conta

Se a página for vulnerável a CSRF, você pode ser capaz de fazer com que o usuário modifique sua senha, e-mail ou autenticação para então acessá-la:

{% content-ref url="csrf-cross-site-request-forgery.md" %} csrf-cross-site-request-forgery.md {% endcontent-ref %}

XSS para Assumir o Controle da Conta

Se você encontrar um XSS na aplicação, pode ser capaz de roubar cookies, armazenamento local ou informações da página da web que poderiam permitir que você assumisse a conta:

{% content-ref url="xss-cross-site-scripting/" %} xss-cross-site-scripting {% endcontent-ref %}

Mesma Origem + Cookies

Se você encontrar um XSS limitado ou assumir um subdomínio, você pode brincar com os cookies (fixando-os, por exemplo) para tentar comprometer a conta da vítima:

{% content-ref url="hacking-with-cookies/" %} hacking-with-cookies {% endcontent-ref %}

Atacando o Mecanismo de Redefinição de Senha

{% content-ref url="reset-password.md" %} reset-password.md {% endcontent-ref %}

Manipulação de Resposta

Se a resposta de autenticação puder ser reduzida para um simples booleano, tente alterar false para true e veja se obtém algum acesso.

OAuth para Assumir o Controle da Conta

{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}

Injeção de Cabeçalho de Host

  1. O cabeçalho Host é modificado seguindo uma solicitação de redefinição de senha.
  2. O cabeçalho de proxy X-Forwarded-For é alterado para attacker.com.
  3. Os cabeçalhos Host, Referrer e Origin são alterados simultaneamente para attacker.com.
  4. Após iniciar uma redefinição de senha e optar por reenviar o e-mail, todos os três métodos mencionados acima são empregados.

Manipulação de Resposta

  1. Manipulação de Código: O código de status é alterado para 200 OK.
  2. Manipulação de Código e Corpo:
  • O código de status é alterado para 200 OK.
  • O corpo da resposta é modificado para {"success":true} ou um objeto vazio {}.

Essas técnicas de manipulação são eficazes em cenários onde o JSON é utilizado para transmissão e recebimento de dados.

Alterar o e-mail da sessão atual

De acordo com este relatório:

  • O atacante solicita alterar seu e-mail por um novo
  • O atacante recebe um link para confirmar a alteração do e-mail
  • O atacante envia o link para a vítima, que o clica
  • O e-mail da vítima é alterado para o indicado pelo atacante
  • O ataque pode recuperar a senha e assumir a conta

Isso também aconteceu em este relatório.

Cookies Antigos

Conforme explicado neste post, foi possível fazer login em uma conta, salvar os cookies como usuário autenticado, sair e depois fazer login novamente.
Com o novo login, embora diferentes cookies possam ser gerados, os antigos voltaram a funcionar.

Referências

Aprenda a hackear a AWS do zero ao herói com htARTE (Especialista em Equipe Vermelha AWS do HackTricks)!

Outras maneiras de apoiar o HackTricks: