Reset/Forgotten Password Bypass
Reading time: 7 minutes
tip
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.
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 clicca 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 la tua password immediatamente. Invece, naviga verso un sito web di terze parti (come Facebook o Twitter) mentre intercetti le richieste usando 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
- HackerOne Report 272379
- Password Reset Token Leak Article
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:
- Convalidare l'intestazione Host rispetto a un elenco di domini consentiti.
- Utilizzare metodi sicuri lato server per generare URL assoluti.
- Patch: Utilizzare
$_SERVER['SERVER_NAME']
per costruire URL di reset della password invece di$_SERVER['HTTP_HOST']
. - Riferimenti:
- Acunetix Article on 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 utilizzando %20
php
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
- Aggiungi l'email dell'attaccante come secondo parametro utilizzando |
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 utilizzando ,
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://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
Cambiamento di Email e 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
Nessun Limite di Frequenza: Email Bombing
- La mancanza di limitazione della frequenza nelle richieste di reset della password può portare a email bombing, sommergendo l'utente con email di reset.
- Passi di Mitigazione:
- Implementa la limitazione della frequenza basata su indirizzo IP o account utente.
- Usa sfide CAPTCHA per prevenire abusi automatizzati.
- Riferimenti:
- HackerOne Report 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 Criptografia
- 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:
- Passi di Mitigazione:
- Usa la versione 4 di GUID per la casualità o implementa misure di sicurezza aggiuntive per altre versioni.
- Strumenti: Usa 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
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
tip
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.