hacktricks/pentesting-web/account-takeover.md

8.3 KiB

Tomada de Conta

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Problema de Autorização

O email de uma conta deve ser tentado para ser alterado, e o processo de confirmação deve ser examinado. Se encontrado fraco, o email deve ser alterado para o do alvo pretendido 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

Como explicado em esta palestra, o ataque anterior também poderia ser realizado abusando de provedores de identidade de terceiros:

  • Crie uma conta no provedor de identidade de terceiros com um email semelhante ao da vítima usando algum caractere unicode (vićtim@company.com).
  • O provedor de terceiros não deve verificar o email
  • Se o provedor de identidade verificar o email, 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 do domínio.
  • Faça login via este 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 %}

Reutilizando Token de Redefinição

Se o sistema alvo permitir 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é Tomada de Conta

  1. O email 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 emails da vítima possa tornar isso impossível).
  2. Deve-se esperar 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 CORS Incorreta para Tomada de Conta

Se a página contiver configurações CORS incorretas, você pode ser capaz de roubar informações sensíveis do usuário para tomar conta de 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 Tomada de Conta

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

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

XSS para Tomada de 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ê tomasse conta da conta:

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

Mesma Origem + Cookies

Se você encontrar um XSS limitado ou uma tomada de subdomínio, você poderia 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 a um simples booleano, apenas tente mudar falso para verdadeiro e veja se você obtém algum acesso.

OAuth para Tomada de Conta

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

Injeção de Cabeçalho Host

  1. O cabeçalho Host é modificado após a iniciação de um pedido de redefinição de senha.
  2. O cabeçalho proxy X-Forwarded-For é alterado para attacker.com.
  3. Os cabeçalhos Host, Referrer e Origin são simultaneamente alterados para attacker.com.
  4. Após iniciar uma redefinição de senha e optar por reenviar o email, todos os três métodos mencionados 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 JSON é utilizado para transmissão e recebimento de dados.

Alterar email da sessão atual

A partir deste relatório:

  • O atacante solicita a alteração de seu email para um novo
  • O atacante recebe um link para confirmar a alteração do email
  • O atacante envia o link para a vítima para que ela clique
  • O email da vítima é alterado para o indicado pelo atacante
  • O atacante pode recuperar a senha e tomar conta da conta

Isso também aconteceu em este relatório.

Cookies Antigos

Como explicado neste post, foi possível fazer login em uma conta, salvar os cookies como um usuário autenticado, sair e então fazer login novamente.
Com o novo login, embora cookies diferentes possam ser gerados, os antigos começaram a funcionar novamente.

Referências

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}