# Bajpasiranje Resetovanja/Zaboravljene Lozinke
Naučite hakovanje AWS-a od nule do heroja sahtARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
Pridružite se [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) serveru kako biste komunicirali sa iskusnim hakerima i lovcima na bagove!
**Hakerski Uvidi**\
Uključite se u sadržaj koji istražuje uzbuđenje i izazove hakovanja
**Vesti o Hakovanju u Realnom Vremenu**\
Budite u toku sa brzim svetom hakovanja kroz vesti i uvide u realnom vremenu
**Najnovije Najave**\
Ostanite informisani o najnovijim nagradama za pronalaženje bagova i bitnim ažuriranjima platformi
**Pridružite nam se na** [**Discord-u**](https://discord.com/invite/N3FrSbmwdy) i počnite da sarađujete sa vrhunskim hakerima danas!
## **Curenje Tokena za Resetovanje Lozinke Putem Referrera**
* HTTP referer zaglavlje može procuriti token za resetovanje lozinke ako je uključen u URL. Ovo može da se desi kada korisnik klikne na link treće strane nakon što je zatražio resetovanje lozinke.
* **Utjecaj**: Potencijalno preuzimanje naloga putem napada Cross-Site Request Forgery (CSRF).
* **Eksploatacija**: Da biste proverili da li token za resetovanje lozinke procuri u referer zaglavlju, **zatražite resetovanje lozinke** na svoju email adresu i **kliknite na link za resetovanje** koji je pružen. **Nemojte odmah promeniti lozinku**. Umesto toga, **posetite web lokaciju treće strane** (kao što su Facebook ili Twitter) dok **interceptujete zahteve pomoću Burp Suite-a**. Inspekcijom zahteva vidite da li **referer zaglavlje sadrži token za resetovanje lozinke**, jer to može izložiti osetljive informacije trećim stranama.
* **Reference**:
* [HackerOne Izveštaj 342693](https://hackerone.com/reports/342693)
* [HackerOne Izveštaj 272379](https://hackerone.com/reports/272379)
* [Članak o Curenju Tokena za Resetovanje Lozinke](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **Trovanje Resetovanja Lozinke**
* Napadači mogu manipulisati Host zaglavlje tokom zahteva za resetovanje lozinke kako bi usmerili link za resetovanje ka zlonamernom sajtu.
* **Utjecaj**: Dovodi do potencijalnog preuzimanja naloga curenjem tokena za resetovanje napadačima.
* **Koraci za Smanjenje Rizika**:
* Validirajte Host zaglavlje protiv bele liste dozvoljenih domena.
* Koristite sigurne, serverske metode za generisanje apsolutnih URL-ova.
* **Popravka**: Koristite `$_SERVER['SERVER_NAME']` za konstruisanje URL-ova za resetovanje lozinke umesto `$_SERVER['HTTP_HOST']`.
* **Reference**:
* [Acunetix Članak o Trovanju Resetovanja Lozinke](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **Resetovanje Lozinke Manipulacijom Parametra Email**
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**:
* Pravilno parsirati i validirati parametre e-pošte na serverskoj strani.
* Koristiti pripremljene izjave ili parametrizovane upite kako bi se sprečili napadi ubacivanjem.
* **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 e-pošte i lozinke bilo kog korisnika putem API parametara**
* Napadači mogu izmeniti parametre e-pošte i lozinke u API zahtevima kako bi promenili pristupne podatke naloga.
```php
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})
```
* **Koraci za ublažavanje**:
* Osigurajte strogu validaciju parametara i provere autentikacije.
* Implementirajte snažno beleženje i praćenje kako biste otkrili i odgovorili na sumnjive aktivnosti.
* **Reference**:
* [Potpuno preuzimanje naloga putem manipulacije API parametrima](https://medium.com/@adeshkolte/potpuno-preuzimanje-naloga-promena-e-pošte-i-lozinke-bilo-kog-korisnika-putem-api-parametara-3d527ab27240)
## **Bez ograničenja brzine: Email bombardovanje**
* Nedostatak ograničenja brzine zahteva za resetovanje lozinke može dovesti do email bombardovanja, preplavljujući korisnika resetujućim emailovima.
* **Koraci za ublažavanje**:
* Implementirajte ograničenje brzine na osnovu IP adrese ili korisničkog naloga.
* Koristite CAPTCHA izazove kako biste sprečili automatizovanu zloupotrebu.
* **Reference**:
* [HackerOne Izveštaj 280534](https://hackerone.com/reports/280534)
## **Saznajte kako se generiše token za resetovanje lozinke**
* Razumevanje obrasca ili metode generisanja tokena može dovesti do predviđanja ili grubog sile tokena. Neke opcije:
* Na osnovu vremenske oznake
* Na osnovu korisničkog ID-a
* Na osnovu e-pošte korisnika
* Na osnovu imena i prezimena
* Na osnovu datuma rođenja
* Na osnovu kriptografije
* **Koraci za ublažavanje**:
* Koristite snažne, kriptografske metode za generisanje tokena.
* Osigurajte dovoljno slučajnosti i dužinu kako biste sprečili predvidljivost.
* **Alati**: Koristite Burp Sequencer za analizu slučajnosti tokena.
## **Pogodan UUID**
* Ako su UUID-ovi (verzija 1) pogodni ili predvidljivi, napadači ih mogu grubo siliti kako bi generisali validne reset tokene. Proverite:
{% content-ref url="uuid-insecurities.md" %}
[uuid-insecurities.md](uuid-insecurities.md)
{% endcontent-ref %}
* **Koraci za ublažavanje**:
* Koristite GUID verziju 4 za slučajnost ili implementirajte dodatne sigurnosne mere za druge verzije.
* **Alati**: Koristite [guidtool](https://github.com/intruder-io/guidtool) za analizu i generisanje GUID-ova.
## **Manipulacija odgovorom: Zamena lošeg odgovora dobrom**
* Manipulisanje HTTP odgovora kako bi se zaobišle greške ili ograničenja.
* **Koraci za ublažavanje**:
* Implementirajte provere na serverskoj strani kako biste osigurali integritet odgovora.
* Koristite sigurne komunikacione kanale poput HTTPS-a kako biste sprečili napade čoveka usred komunikacije.
* **Reference**:
* [Kritična greška na događaju uživo sa Bug Bounty](https://medium.com/@innocenthacker/kako-sam-pronašao-najkritičniju-grešku-na-događaju-uživo-sa-bug-bounty-7a88b3aa97b3)
## **Korišćenje isteklog tokena**
* Testiranje da li istekli tokeni i dalje mogu biti korišćeni za resetovanje lozinke.
* **Koraci za ublažavanje**:
* Implementirajte stroge politike isteka tokena i validirajte istek tokena na serverskoj strani.
## **Gruba sila za resetovanje lozinke**
* Pokušaj grubog sile reset tokena korišćenjem alata poput Burpsuite-a i IP-Rotatora kako biste zaobišli IP-bazirana ograničenja brzine.
* **Koraci za ublažavanje**:
* Implementirajte snažne mehanizme ograničenja brzine i zaključavanja naloga.
* Pratite sumnjive aktivnosti koje ukazuju na napade grubom silom.
## **Pokušajte koristiti svoj token**
* Testiranje da li napadačev reset token može biti korišćen zajedno sa emailom žrtve.
* **Koraci za ublažavanje**:
* Osigurajte da su tokeni vezani za korisničku sesiju ili druge korisnički-specifične atribute.
## **Poništavanje sesije pri odjavljivanju/resetovanju lozinke**
* Osiguravanje da se sesije poništavaju kada korisnik se odjavi ili resetuje lozinku.
* **Koraci za ublažavanje**:
* Implementirajte pravilno upravljanje sesijama, osiguravajući da se sve sesije poništavaju prilikom odjavljivanja ili resetovanja lozinke.
## **Poništavanje sesije pri odjavljivanju/resetovanju lozinke**
* Reset tokeni treba da imaju vreme isteka nakon kojeg postaju nevažeći.
* **Koraci za ublažavanje**:
* Postavite razumno vreme isteka za reset tokene i strogo ga sprovedite 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 bagove!