# Bajpasiranje Resetovanja/Zaboravljene Lozinke
Naučite hakovanje AWS-a od nule do heroja sa htARTE (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!