# Reset/Forgotten Password Bypass
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* 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.
{% endhint %}
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**
* HTTP referer header može otkriti token za resetovanje lozinke ako je uključen u URL. Ovo se može desiti kada korisnik klikne na link treće strane nakon što zatraži resetovanje lozinke.
* **Impact**: Potencijalno preuzimanje naloga putem Cross-Site Request Forgery (CSRF) napada.
* **Exploitation**: Da biste proverili da li se token za resetovanje lozinke otkriva u referer header-u, **zatražite resetovanje lozinke** na vašu email adresu i **kliknite na link za resetovanje** koji je dostavljen. **Ne menjajte lozinku** odmah. Umesto toga, **navigirajte do veb stranice treće strane** (kao što su Facebook ili Twitter) dok **presrećete zahteve koristeći Burp Suite**. Istražite zahteve da vidite da li **referer header sadrži token za resetovanje lozinke**, jer to može izložiti osetljive informacije trećim stranama.
* **References**:
* [HackerOne Report 342693](https://hackerone.com/reports/342693)
* [HackerOne Report 272379](https://hackerone.com/reports/272379)
* [Password Reset Token Leak Article](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **Password Reset Poisoning**
* Napadači mogu manipulisati Host header-om tokom zahteva za resetovanje lozinke kako bi usmerili link za resetovanje na zloćudnu stranicu.
* **Impact**: Dovodi do potencijalnog preuzimanja naloga otkrivanjem reset tokena napadačima.
* **Mitigation Steps**:
* Validirajte Host header u odnosu na belu listu dozvoljenih domena.
* Koristite sigurne, server-side metode za generisanje apsolutnih URL-ova.
* **Patch**: Koristite `$_SERVER['SERVER_NAME']` za konstrukciju URL-ova za resetovanje lozinke umesto `$_SERVER['HTTP_HOST']`.
* **References**:
* [Acunetix Article on Password Reset Poisoning](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **Password Reset By Manipulating Email Parameter**
Napadači mogu manipulisati zahtevom za resetovanje lozinke dodavanjem dodatnih email parametara kako bi preusmerili link za resetovanje.
* Dodajte email napadača kao drugi parametar koristeći &
```php
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
```
* Dodajte email napadača kao drugi parametar koristeći %20
```php
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
```
* Dodajte email napadača kao drugi parametar koristeći |
```php
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
```
* Dodajte email napadača kao drugi parametar koristeći cc
```php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
```
* Dodajte email napadača kao drugi parametar koristeći bcc
```php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
```
* Dodajte email napadača kao drugi parametar koristeći ,
```php
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
```
* Dodajte email napadača kao drugi parametar u json nizu
```php
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}
```
* **Koraci za ublažavanje**:
* Ispravno analizirati i validirati email parametre na serverskoj strani.
* Koristiti pripremljene izjave ili parametrizovane upite kako bi se sprečili napadi injekcijom.
* **Reference**:
* [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)
## **Menjanje email-a i lozinke bilo kog korisnika putem API parametara**
* Napadači mogu modifikovati email i lozinku parametre u API zahtevima kako bi promenili akreditive naloga.
```php
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})
```
* **Koraci za ublažavanje**:
* Osigurati strogu validaciju parametara i provere autentifikacije.
* Implementirati robusno logovanje i praćenje kako bi se otkrile i reagovalo na sumnjive aktivnosti.
* **Reference**:
* [Potpuno preuzimanje naloga putem manipulacije API parametrima](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
## **Nema ograničenja brzine: Email bombardovanje**
* Nedostatak ograničenja brzine na zahtevima za resetovanje lozinke može dovesti do bombardovanja email-ova, preplavljujući korisnika sa email-ovima za resetovanje.
* **Koraci za ublažavanje**:
* Implementirati ograničenje brzine na osnovu IP adrese ili korisničkog naloga.
* Koristiti CAPTCHA izazove kako bi se sprečila automatska zloupotreba.
* **Reference**:
* [HackerOne izveštaj 280534](https://hackerone.com/reports/280534)
## **Saznajte kako se generiše token za resetovanje lozinke**
* Razumevanje obrasca ili metode iza generisanja tokena može dovesti do predviđanja ili brute-forcing tokena. Neke opcije:
* Na osnovu vremenskog pečata
* Na osnovu UserID-a
* Na osnovu email-a korisnika
* Na osnovu imena i prezimena
* Na osnovu datuma rođenja
* Na osnovu kriptografije
* **Koraci za ublažavanje**:
* Koristiti jake, kriptografske metode za generisanje tokena.
* Osigurati dovoljnu nasumičnost i dužinu kako bi se sprečila predvidljivost.
* **Alati**: Koristiti Burp Sequencer za analizu nasumičnosti tokena.
## **Pogodna UUID**
* Ako su UUID-ovi (verzija 1) pogodivi ili predvidivi, napadači mogu da ih brute-force-uju kako bi generisali važeće tokene za resetovanje. Proverite:
{% content-ref url="uuid-insecurities.md" %}
[uuid-insecurities.md](uuid-insecurities.md)
{% endcontent-ref %}
* **Koraci za ublažavanje**:
* Koristiti GUID verziju 4 za nasumičnost ili implementirati dodatne sigurnosne mere za druge verzije.
* **Alati**: Koristiti [guidtool](https://github.com/intruder-io/guidtool) za analizu i generisanje GUID-ova.
## **Manipulacija odgovorom: Zamenite loš odgovor dobrim**
* Manipulacija HTTP odgovorima kako bi se zaobišle poruke o grešci ili ograničenja.
* **Koraci za ublažavanje**:
* Implementirati provere na serverskoj strani kako bi se osigurala integritet odgovora.
* Koristiti sigurne komunikacione kanale kao što je HTTPS kako bi se sprečili napadi "man-in-the-middle".
* **Reference**:
* [Kritična greška u Live Bug Bounty događaju](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
## **Korišćenje istekao tokena**
* Testiranje da li se istekao tokeni još uvek mogu koristiti za resetovanje lozinke.
* **Koraci za ublažavanje**:
* Implementirati stroge politike isteka tokena i validirati istekao token na serverskoj strani.
## **Brute Force token za resetovanje lozinke**
* Pokušaj brute-force-a reset tokena koristeći alate kao što su Burpsuite i IP-Rotator kako bi se zaobišla ograničenja brzine zasnovana na IP-u.
* **Koraci za ublažavanje**:
* Implementirati robusno ograničenje brzine i mehanizme zaključavanja naloga.
* Pratiti sumnjive aktivnosti koje ukazuju na brute-force napade.
## **Pokušajte koristiti svoj token**
* Testiranje da li se napadačev reset token može koristiti u kombinaciji sa email-om žrtve.
* **Koraci za ublažavanje**:
* Osigurati da su tokeni vezani za korisničku sesiju ili druge korisnički specifične atribute.
## **Nevaženje sesije prilikom odjave/resetovanja lozinke**
* Osigurati da se sesije nevaže kada se korisnik odjavi ili resetuje svoju lozinku.
* **Koraci za ublažavanje**:
* Implementirati pravilno upravljanje sesijama, osiguravajući da se sve sesije nevaže prilikom odjave ili resetovanja lozinke.
## **Nevaženje sesije prilikom odjave/resetovanja lozinke**
* Tokeni za resetovanje bi trebali imati vreme isteka nakon kojeg postaju nevažeći.
* **Koraci za ublažavanje**:
* Postaviti razumno vreme isteka za tokene za resetovanje i strogo ga sprovoditi na serverskoj strani.
## Reference
* [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)
Pridružite se [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serveru kako biste komunicirali sa iskusnim hakerima i lovcima na greške!
**Uvidi u hakovanje**\
Uključite se u sadržaj koji se bavi uzbuđenjem i izazovima hakovanja
**Vesti o hakovanju u realnom vremenu**\
Budite u toku sa brzim svetom hakovanja kroz vesti i uvide u realnom vremenu
**Najnovija obaveštenja**\
Budite informisani o najnovijim nagradama za greške i važnim ažuriranjima platforme
**Pridružite nam se na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i počnite da sarađujete sa vrhunskim hakerima danas!
{% hint style="success" %}
Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Podrška HackTricks
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podelite trikove za hakovanje slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
{% endhint %}