hacktricks/pentesting-web/reset-password.md

228 lines
12 KiB
Markdown
Raw Normal View History

# Bypass de Redefinição/Recuperação de Senha
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Outras formas de apoiar o HackTricks:
2022-04-28 16:01:33 +00:00
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
2022-04-28 16:01:33 +00:00
</details>
2022-10-27 23:22:18 +00:00
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
2023-02-27 09:28:45 +00:00
Junte-se ao servidor [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de recompensas por bugs!
2023-02-27 09:28:45 +00:00
**Percepções de Hacking**\
Envolver-se com conteúdo que mergulha na emoção e desafios do hacking
2023-02-27 09:28:45 +00:00
**Notícias de Hacking em Tempo Real**\
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e percepções em tempo real
2022-10-27 23:22:18 +00:00
**Últimos Anúncios**\
Fique informado sobre os mais recentes programas de recompensas por bugs lançados e atualizações cruciais na plataforma
**Junte-se a nós no** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e comece a colaborar com os melhores hackers hoje!
## **Vazamento de Token de Redefinição de Senha via Referer**
* O cabeçalho HTTP referer pode vazar o token de redefinição de senha se estiver incluído na URL. Isso pode ocorrer quando um usuário clica em um link de um site de terceiros após solicitar uma redefinição de senha.
* **Impacto**: Possível tomada de conta da conta via ataques de Cross-Site Request Forgery (CSRF).
* **Exploração**: Para verificar se um token de redefinição de senha está vazando no cabeçalho referer, **solicite uma redefinição de senha** para o seu endereço de e-mail e **clique no link de redefinição** fornecido. **Não altere sua senha** imediatamente. Em vez disso, **navegue para um site de terceiros** (como Facebook ou Twitter) enquanto **intercepta as solicitações usando o Burp Suite**. Inspecione as solicitações para ver se o **cabeçalho referer contém o token de redefinição de senha**, pois isso poderia expor informações sensíveis a terceiros.
* **Referências**:
* [Relatório HackerOne 342693](https://hackerone.com/reports/342693)
* [Relatório HackerOne 272379](https://hackerone.com/reports/272379)
* [Artigo de Vazamento de Token de Redefinição de Senha](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **Envenenamento de Redefinição de Senha**
* Os atacantes podem manipular o cabeçalho Host durante as solicitações de redefinição de senha para apontar o link de redefinição para um site malicioso.
* **Impacto**: Leva à possível tomada de conta vazando tokens de redefinição para os atacantes.
* **Passos de Mitigação**:
* Valide o cabeçalho Host contra uma lista branca de domínios permitidos.
* Use métodos seguros e do lado do servidor para gerar URLs absolutos.
* **Correção**: Use `$_SERVER['SERVER_NAME']` para construir URLs de redefinição de senha em vez de `$_SERVER['HTTP_HOST']`.
* **Referências**:
* [Artigo da Acunetix sobre Envenenamento de Redefinição de Senha](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **Redefinição de Senha Manipulando o Parâmetro de E-mail**
Os atacantes podem manipular a solicitação de redefinição de senha adicionando parâmetros de e-mail adicionais para desviar o link de redefinição.
* Adicione o e-mail do atacante como segundo parâmetro usando &
```php
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
```
* Adicione o email do atacante como segundo parâmetro usando %20
```php
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
```
* Adicione o email do atacante como segundo parâmetro usando |
```php
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
```
* Adicione o email do atacante como segundo parâmetro usando cc
```php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
```
* Adicione o email do atacante como segundo parâmetro usando bcc
```php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
```
* Adicione o email do atacante como segundo parâmetro usando ,
```php
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
```
* Adicione o email do atacante como segundo parâmetro no array json
```php
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}
```
* **Passos de Mitigação**:
* Analisar e validar corretamente os parâmetros de email no servidor.
* Utilizar declarações preparadas ou consultas parametrizadas para prevenir ataques de injeção.
* **Referências**:
* [https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be](https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be)
* [https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/](https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/)
* [https://twitter.com/HusseiN98D/status/1254888748216655872](https://twitter.com/HusseiN98D/status/1254888748216655872)
## **Alterando Email e Senha de Qualquer Usuário através dos Parâmetros da API**
* Os atacantes podem modificar os parâmetros de email e senha em solicitações de API para alterar as credenciais da conta.
```php
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})
```
* **Passos de Mitigação**:
* Garantir validação rigorosa de parâmetros e verificações de autenticação.
* Implementar registro e monitoramento robustos para detectar e responder a atividades suspeitas.
* **Referência**:
* [Assumir Controle Total da Conta via Manipulação de Parâmetros da API](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
## **Sem Limite de Taxa: Bombardeio de E-mails**
* A falta de limitação de taxa em solicitações de redefinição de senha pode levar a um bombardeio de e-mails, sobrecarregando o usuário com e-mails de redefinição.
* **Passos de Mitigação**:
* Implementar limitação de taxa com base no endereço IP ou na conta do usuário.
* Utilizar desafios CAPTCHA para prevenir abusos automatizados.
* **Referências**:
* [Relatório HackerOne 280534](https://hackerone.com/reports/280534)
## **Descobrir Como o Token de Redefinição de Senha é Gerado**
* Compreender o padrão ou método por trás da geração de tokens pode levar à previsão ou força bruta de tokens. Algumas opções:
* Com base no Timestamp
* Com base no ID do Usuário
* Com base no e-mail do Usuário
* Com base no Nome e Sobrenome
* Com base na Data de Nascimento
* Com base em Criptografia
* **Passos de Mitigação**:
* Utilizar métodos criptográficos fortes para a geração de tokens.
* Garantir aleatoriedade e comprimento suficientes para evitar previsibilidade.
* **Ferramentas**: Utilizar o Burp Sequencer para analisar a aleatoriedade dos tokens.
## **UUID Adivinhável**
* Se os UUIDs (versão 1) forem adivinháveis ou previsíveis, os atacantes podem forçá-los para gerar tokens de redefinição válidos. Verificar:
{% content-ref url="uuid-insecurities.md" %}
[uuid-insecurities.md](uuid-insecurities.md)
{% endcontent-ref %}
* **Passos de Mitigação**:
* Utilizar GUID versão 4 para aleatoriedade ou implementar medidas de segurança adicionais para outras versões.
* **Ferramentas**: Utilizar [guidtool](https://github.com/intruder-io/guidtool) para analisar e gerar GUIDs.
## **Manipulação de Resposta: Substituir Resposta Ruim por Boa**
* Manipular respostas HTTP para contornar mensagens de erro ou restrições.
* **Passos de Mitigação**:
* Implementar verificações no lado do servidor para garantir a integridade da resposta.
* Utilizar canais de comunicação seguros como HTTPS para prevenir ataques de homem no meio.
* **Referência**:
* [Bug Crítico em Evento de Caça ao Bug ao Vivo](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
## **Utilizando Token Expirado**
* Testar se tokens expirados ainda podem ser usados para redefinição de senha.
* **Passos de Mitigação**:
* Implementar políticas estritas de expiração de token e validar a expiração do token no lado do servidor.
## **Força Bruta no Token de Redefinição de Senha**
* Tentativa de força bruta no token de redefinição usando ferramentas como Burpsuite e IP-Rotator para contornar limites de taxa baseados em IP.
* **Passos de Mitigação**:
* Implementar mecanismos robustos de limitação de taxa e bloqueio de conta.
* Monitorar atividades suspeitas indicativas de ataques de força bruta.
## **Tentar Usar Seu Token**
* Testar se o token de redefinição de senha de um atacante pode ser usado em conjunto com o e-mail da vítima.
* **Passos de Mitigação**:
* Garantir que os tokens estejam vinculados à sessão do usuário ou a outros atributos específicos do usuário.
## **Invalidação de Sessão em Logout/Redefinição de Senha**
* Garantir que as sessões sejam invalidadas quando um usuário faz logout ou redefine sua senha.
* **Passos de Mitigação**:
* Implementar gerenciamento adequado de sessões, garantindo que todas as sessões sejam invalidadas ao fazer logout ou redefinir a senha.
## **Invalidação de Sessão em Logout/Redefinição de Senha**
* Os tokens de redefinição devem ter um tempo de expiração após o qual se tornam inválidos.
* **Passos de Mitigação**:
* Definir um tempo de expiração razoável para os tokens de redefinição e aplicá-lo estritamente no lado do servidor.
## Referências
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
Junte-se ao servidor [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de bugs!
**Percepções de Hacking**\
Engaje-se com conteúdo que explora a emoção e os desafios do hacking
2022-10-27 23:22:18 +00:00
**Notícias de Hacking em Tempo Real**\
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e insights em tempo real
2022-10-27 23:22:18 +00:00
**Últimos Anúncios**\
Fique informado sobre os novos programas de recompensas por bugs lançados e atualizações cruciais na plataforma
2023-02-27 09:28:45 +00:00
**Junte-se a nós no** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e comece a colaborar com os melhores hackers hoje!
2022-10-27 23:22:18 +00:00
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras maneiras de apoiar o HackTricks:
2022-04-28 16:01:33 +00:00
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>