Account Takeover

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks

Problema de Autorização

O email de uma conta deve ser tentado alterar, e o processo de confirmação deve ser examinado. Se for considerado 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. Deve ser criada uma conta usando Unicode
    por exemplo: vićtim@gmail.com

Como explicado em this talk, o ataque anterior também pode ser feito abusando de provedores de identidade de terceiros:

  • Crie uma conta no provedor de identidade de terceiros com um e-mail similar 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, por exemplo: victim@ćompany.com e registrar esse domínio e torcer que o provedor de identidade gere a versão ASCII do domínio enquanto a plataforma da vítima normalize o nome do 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.

For further details, refer to the document on Unicode Normalization:

Unicode Normalization

Reusing Reset Token

Se o sistema alvo permitir que o link de redefinição seja reutilizado, deve-se envidar esforços para encontrar mais links de redefinição usando ferramentas como gau, wayback, ou scan.io.

Pre Account Takeover

  1. O email da vítima deve ser usado para se registrar na plataforma, e uma senha deve ser definida (deve-se tentar confirmá-la, 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 faça signup usando OAuth e confirme a conta.
  3. Espera-se que o registro regular seja confirmado, permitindo o acesso à conta da vítima.

CORS Misconfiguration to Account Takeover

Se a página contiver CORS misconfigurations, você pode conseguir roubar informações sensíveis do usuário para assumir a conta dele ou fazê-lo alterar informações de autenticação com o mesmo propósito:

CORS - Misconfigurations & Bypass

Csrf to Account Takeover

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ê então possa acessá-la:

CSRF (Cross Site Request Forgery)

XSS to Account Takeover

Se você encontrar um XSS na aplicação, pode conseguir roubar cookies, local storage, ou informações da página web que possam permitir que você assuma a conta:

XSS (Cross Site Scripting)

  • Attribute-only reflected payloads on login pages can hook document.onkeypress, exfiltrate keystrokes through new Image().src, and steal credentials without submitting the form. See Attribute-only login XSS behind WAFs for a practical workflow.

Same Origin + Cookies

Se você encontrar um XSS limitado ou um subdomain take over, você pode manipular os cookies (fixá-los, por exemplo) para tentar comprometer a conta da vítima:

Cookies Hacking

Attacking Password Reset Mechanism

Reset/Forgotten Password Bypass

Redefinições por perguntas de segurança que confiam em nomes de usuário fornecidos pelo cliente

Se um fluxo de “update security questions” aceitar um parâmetro username mesmo que o chamador já esteja autenticado, você pode sobrescrever os dados de recuperação de qualquer conta (incluindo admins) porque o backend tipicamente executa UPDATE ... WHERE user_name = ? com seu valor não confiável. O padrão é:

  1. Faça login com um usuário descartável e capture o cookie de sessão.
  2. Envie o username da vítima mais novas respostas via o formulário de reset.
  3. Autentique-se imediatamente através do endpoint de login por perguntas de segurança usando as respostas que você acabou de injetar para herdar os privilégios da vítima.
POST /reset.php HTTP/1.1
Host: file.era.htb
Cookie: PHPSESSID=<low-priv>
Content-Type: application/x-www-form-urlencoded

username=admin_ef01cab31aa&new_answer1=A&new_answer2=B&new_answer3=C

Anything gated by the victim’s $_SESSION context (admin dashboards, dangerous stream-wrapper features, etc.) is now exposed without touching the real answers.

Enumerated usernames can then be targeted via the overwrite technique above or reused against ancillary services (FTP/SSH password spraying).

Response Manipulation

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

OAuth to Account takeover

OAuth to Account takeover

Host Header Injection

  1. O header Host é modificado após a iniciação de um pedido de password reset.
  2. O header proxy X-Forwarded-For é alterado para attacker.com.
  3. Os headers Host, Referrer e Origin são simultaneamente alterados para attacker.com.
  4. Após iniciar uma password reset e optar por reenviar o e-mail, empregam-se os três métodos acima.

Response Manipulation

  1. Code Manipulation: O status code é alterado para 200 OK.
  2. Code and Body Manipulation:
  • O status code é 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 recepção de dados.

Alterar email da sessão atual

From this report:

  • Atacante solicita a alteração do seu email para um novo
  • Atacante recebe um link para confirmar a alteração do email
  • Atacante envia o link para a vítima, que o clica
  • O email da vítima é alterado para o indicado pelo atacante
  • O ataque pode recuperar a password e tomar conta da conta

This also happened in this report.

Bypass email verification for Account Takeover

  • Atacante faz login com attacker@test.com e verifica o email ao se cadastrar.
  • Atacante muda o email verificado para victim@test.com (sem verificação secundária na mudança de email)
  • Agora o site permite que victim@test.com faça login e nós contornamos a verificação de email do usuário vítima.

Cookies Antigos

Como explicado neste post, era possível fazer login em uma conta, salvar os cookies como usuário autenticado, fazer logout e então fazer login novamente.
Com o novo login, embora cookies diferentes pudessem ser gerados, os antigos voltavam a funcionar.

Trusted device cookies + batch API leakage

Identificadores de dispositivo de longa duração que controlam a recovery podem ser roubados quando uma batch API permite copiar sub-responses não legíveis para sinks graváveis.

  • Identify a trusted-device cookie (SameSite=None, long-lived) used to relax recovery checks.
  • Find a first-party endpoint that returns that device ID in JSON (e.g., an OAuth code exchange returning machine_id) but is not readable cross-origin.
  • Use a batch/chained API that allows referencing earlier subresponses ({result=name:$.path}) and writing them to an attacker-visible sink (page post, upload-by-URL, etc.). Example with Facebook Graph API:
POST https://graph.facebook.com/
batch=[
{"method":"post","omit_response_on_success":0,"relative_url":"/oauth/access_token?client_id=APP_ID%26redirect_uri=REDIRECT_URI","body":"code=SINGLE_USE_CODE","name":"leaker"},
{"method":"post","relative_url":"PAGE_ID/posts","body":"message={result=leaker:$.machine_id}"}
]
access_token=PAGE_ACCESS_TOKEN&method=post
  • Carregue a batch URL em um <iframe> oculto para que a vítima envie o trusted-device cookie; a referência JSON-path copia machine_id para o post controlado pelo atacante mesmo que a resposta OAuth seja ilegível para a página.
  • Replay: defina o stolen device cookie em uma nova sessão. O Recovery agora trata o navegador como confiável, frequentemente expondo fluxos mais fracos “no email/phone” (e.g., automated document upload) para adicionar um email do atacante sem a password ou 2FA.

Referências

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks