mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
229 lines
12 KiB
Markdown
229 lines
12 KiB
Markdown
# Reset/Forgotten Password Bypass
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
|
|
|
**Hacking Insights**\
|
|
Engage with content that delves into the thrill and challenges of hacking
|
|
|
|
**Real-Time Hack News**\
|
|
Keep up-to-date with fast-paced hacking world through real-time news and insights
|
|
|
|
**Latest Announcements**\
|
|
Stay informed with the newest bug bounties launching and crucial platform updates
|
|
|
|
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
|
|
|
|
## **Password Reset Token Leak Via Referrer**
|
|
|
|
* L'intestazione HTTP referer può rivelare il token di reset della password se è incluso nell'URL. Questo può verificarsi quando un utente fa clic su un link di un sito web di terze parti dopo aver richiesto un reset della password.
|
|
* **Impatto**: Potenziale assunzione dell'account tramite attacchi Cross-Site Request Forgery (CSRF).
|
|
* **Sfruttamento**: Per controllare se un token di reset della password sta trapelando nell'intestazione referer, **richiedi un reset della password** al tuo indirizzo email e **clicca sul link di reset** fornito. **Non cambiare immediatamente la tua password**. Invece, **naviga verso un sito web di terze parti** (come Facebook o Twitter) mentre **intercetti le richieste utilizzando Burp Suite**. Ispeziona le richieste per vedere se **l'intestazione referer contiene il token di reset della password**, poiché questo potrebbe esporre informazioni sensibili a terzi.
|
|
* **Riferimenti**:
|
|
* [HackerOne Report 342693](https://hackerone.com/reports/342693)
|
|
* [HackerOne Report 272379](https://hackerone.com/reports/272379)
|
|
* [Articolo sulla fuga del token di reset della password](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
|
|
|
|
## **Password Reset Poisoning**
|
|
|
|
* Gli attaccanti possono manipolare l'intestazione Host durante le richieste di reset della password per indirizzare il link di reset a un sito malevolo.
|
|
* **Impatto**: Porta a una potenziale assunzione dell'account rivelando i token di reset agli attaccanti.
|
|
* **Passi di mitigazione**:
|
|
* Valida l'intestazione Host rispetto a un elenco di domini consentiti.
|
|
* Usa metodi sicuri, lato server, per generare URL assoluti.
|
|
* **Patch**: Usa `$_SERVER['SERVER_NAME']` per costruire URL di reset della password invece di `$_SERVER['HTTP_HOST']`.
|
|
* **Riferimenti**:
|
|
* [Articolo di Acunetix su Password Reset Poisoning](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
|
|
|
|
## **Password Reset By Manipulating Email Parameter**
|
|
|
|
Gli attaccanti possono manipolare la richiesta di reset della password aggiungendo parametri email aggiuntivi per deviare il link di reset.
|
|
|
|
* Aggiungi l'email dell'attaccante come secondo parametro usando &
|
|
```php
|
|
POST /resetPassword
|
|
[...]
|
|
email=victim@email.com&email=attacker@email.com
|
|
```
|
|
* Aggiungi l'email dell'attaccante come secondo parametro usando %20
|
|
```php
|
|
POST /resetPassword
|
|
[...]
|
|
email=victim@email.com%20email=attacker@email.com
|
|
```
|
|
* Aggiungi l'email dell'attaccante come secondo parametro usando |
|
|
```php
|
|
POST /resetPassword
|
|
[...]
|
|
email=victim@email.com|email=attacker@email.com
|
|
```
|
|
* Aggiungi l'email dell'attaccante come secondo parametro utilizzando cc
|
|
```php
|
|
POST /resetPassword
|
|
[...]
|
|
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
|
|
```
|
|
* Aggiungi l'email dell'attaccante come secondo parametro utilizzando bcc
|
|
```php
|
|
POST /resetPassword
|
|
[...]
|
|
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
|
|
```
|
|
* Aggiungi l'email dell'attaccante come secondo parametro usando ,
|
|
```php
|
|
POST /resetPassword
|
|
[...]
|
|
email="victim@mail.tld",email="attacker@mail.tld"
|
|
```
|
|
* Aggiungi l'email dell'attaccante come secondo parametro nell'array json
|
|
```php
|
|
POST /resetPassword
|
|
[...]
|
|
{"email":["victim@mail.tld","atracker@mail.tld"]}
|
|
```
|
|
* **Passi di Mitigazione**:
|
|
* Analizzare e convalidare correttamente i parametri email lato server.
|
|
* Utilizzare dichiarazioni preparate o query parametrizzate per prevenire attacchi di iniezione.
|
|
* **Riferimenti**:
|
|
* [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)
|
|
|
|
## **Cambiamento dell'Email e della Password di qualsiasi Utente tramite Parametri API**
|
|
|
|
* Gli attaccanti possono modificare i parametri email e password nelle richieste API per cambiare le credenziali dell'account.
|
|
```php
|
|
POST /api/changepass
|
|
[...]
|
|
("form": {"email":"victim@email.tld","password":"12345678"})
|
|
```
|
|
* **Passi di Mitigazione**:
|
|
* Assicurati di una rigorosa validazione dei parametri e controlli di autenticazione.
|
|
* Implementa un logging e monitoraggio robusti per rilevare e rispondere ad attività sospette.
|
|
* **Riferimento**:
|
|
* [Full Account Takeover via API Parameter Manipulation](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
|
|
|
|
## **Nessun Limite di Frequenza: Email Bombing**
|
|
|
|
* La mancanza di limiti di frequenza sulle richieste di reset della password può portare a un bombardamento di email, sopraffacendo l'utente con email di reset.
|
|
* **Passi di Mitigazione**:
|
|
* Implementa limiti di frequenza basati su indirizzo IP o account utente.
|
|
* Usa sfide CAPTCHA per prevenire abusi automatizzati.
|
|
* **Riferimenti**:
|
|
* [HackerOne Report 280534](https://hackerone.com/reports/280534)
|
|
|
|
## **Scoprire Come Viene Generato il Token di Reset della Password**
|
|
|
|
* Comprendere il modello o il metodo dietro la generazione del token può portare a prevedere o forzare i token. Alcune opzioni:
|
|
* Basato su Timestamp
|
|
* Basato su UserID
|
|
* Basato sull'email dell'utente
|
|
* Basato su Nome e Cognome
|
|
* Basato sulla Data di Nascita
|
|
* Basato sulla Crittografia
|
|
* **Passi di Mitigazione**:
|
|
* Usa metodi crittografici forti per la generazione dei token.
|
|
* Assicurati di una sufficiente casualità e lunghezza per prevenire la prevedibilità.
|
|
* **Strumenti**: Usa Burp Sequencer per analizzare la casualità dei token.
|
|
|
|
## **UUID Indovinabili**
|
|
|
|
* Se gli UUID (versione 1) sono indovinabili o prevedibili, gli attaccanti possono forzarli per generare token di reset validi. Controlla:
|
|
|
|
{% content-ref url="uuid-insecurities.md" %}
|
|
[uuid-insecurities.md](uuid-insecurities.md)
|
|
{% endcontent-ref %}
|
|
|
|
* **Passi di Mitigazione**:
|
|
* Usa GUID versione 4 per la casualità o implementa misure di sicurezza aggiuntive per altre versioni.
|
|
* **Strumenti**: Usa [guidtool](https://github.com/intruder-io/guidtool) per analizzare e generare GUID.
|
|
|
|
## **Manipolazione della Risposta: Sostituire una Risposta Negativa con una Positiva**
|
|
|
|
* Manipolare le risposte HTTP per bypassare messaggi di errore o restrizioni.
|
|
* **Passi di Mitigazione**:
|
|
* Implementa controlli lato server per garantire l'integrità della risposta.
|
|
* Usa canali di comunicazione sicuri come HTTPS per prevenire attacchi man-in-the-middle.
|
|
* **Riferimento**:
|
|
* [Critical Bug in Live Bug Bounty Event](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
|
|
|
|
## **Utilizzo di Token Scaduti**
|
|
|
|
* Testare se i token scaduti possono ancora essere utilizzati per il reset della password.
|
|
* **Passi di Mitigazione**:
|
|
* Implementa politiche rigorose di scadenza dei token e valida la scadenza del token lato server.
|
|
|
|
## **Brute Force del Token di Reset della Password**
|
|
|
|
* Tentare di forzare il token di reset utilizzando strumenti come Burpsuite e IP-Rotator per bypassare i limiti di frequenza basati su IP.
|
|
* **Passi di Mitigazione**:
|
|
* Implementa meccanismi robusti di limitazione della frequenza e di blocco dell'account.
|
|
* Monitora attività sospette indicative di attacchi di forza bruta.
|
|
|
|
## **Prova a Usare il Tuo Token**
|
|
|
|
* Testare se il token di reset di un attaccante può essere utilizzato in combinazione con l'email della vittima.
|
|
* **Passi di Mitigazione**:
|
|
* Assicurati che i token siano legati alla sessione utente o ad altri attributi specifici dell'utente.
|
|
|
|
## **Invalidazione della Sessione al Logout/Reset della Password**
|
|
|
|
* Assicurati che le sessioni siano invalidate quando un utente esce o resetta la propria password.
|
|
* **Passi di Mitigazione**:
|
|
* Implementa una corretta gestione delle sessioni, assicurandoti che tutte le sessioni siano invalidate al logout o al reset della password.
|
|
|
|
## **Invalidazione della Sessione al Logout/Reset della Password**
|
|
|
|
* I token di reset dovrebbero avere un tempo di scadenza dopo il quale diventano non validi.
|
|
* **Passi di Mitigazione**:
|
|
* Imposta un tempo di scadenza ragionevole per i token di reset e applicalo rigorosamente lato server.
|
|
|
|
## Riferimenti
|
|
|
|
* [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>
|
|
|
|
Unisciti al server [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) per comunicare con hacker esperti e cacciatori di bug bounty!
|
|
|
|
**Approfondimenti sul Hacking**\
|
|
Interagisci con contenuti che approfondiscono il brivido e le sfide dell'hacking
|
|
|
|
**Notizie di Hacking in Tempo Reale**\
|
|
Rimani aggiornato con il mondo dell'hacking in rapida evoluzione attraverso notizie e approfondimenti in tempo reale
|
|
|
|
**Ultimi Annunci**\
|
|
Rimani informato con i nuovi bug bounty in partenza e aggiornamenti cruciali della piattaforma
|
|
|
|
**Unisciti a noi su** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e inizia a collaborare con i migliori hacker oggi stesso!
|
|
|
|
{% hint style="success" %}
|
|
Impara e pratica Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Impara e pratica Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Supporta HackTricks</summary>
|
|
|
|
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
|
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
|
|
|
</details>
|
|
{% endhint %}
|