hacktricks/pentesting-web/reset-password.md

12 KiB

Reset/Forgotten Password Bypass

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Join HackenProof Discord 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 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 svoju lozinku odmah. Umesto toga, navigirajte na sajt 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 ovo može izložiti osetljive informacije trećim stranama.
  • References:
  • HackerOne Report 342693
  • HackerOne Report 272379
  • Password Reset Token Leak Article

Password Reset Poisoning

  • Napadači mogu manipulisati Host header-om tokom zahteva za resetovanje lozinke kako bi usmerili link za resetovanje na zlonamerni sajt.
  • Impact: Dovodi do potencijalnog preuzimanja naloga otkrivanjem reset tokena napadačima.
  • Mitigation Steps:
  • Validirajte Host header protiv bele liste 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

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 &
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
  • Dodajte email napadača kao drugi parametar koristeći %20
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
  • Dodajte email napadača kao drugi parametar koristeći |
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
  • Dodajte email napadača kao drugi parametar koristeći cc
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
  • Dodajte email napadača kao drugi parametar koristeći bcc
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
  • Dodajte email napadača kao drugi parametar koristeći ,
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
  • Dodajte email napadača kao drugi parametar u json nizu
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}

Promena email-a i lozinke bilo kog korisnika putem API parametara

  • Napadači mogu modifikovati email i lozinku u API zahtevima kako bi promenili akreditive naloga.
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})

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 reset email-ovima.
  • 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

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 reset tokene. Proverite:

{% content-ref url="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 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

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čke 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

  • Reset tokeni bi trebali imati vreme isteka nakon kojeg postaju nevažeći.
  • Koraci za ublažavanje:
  • Postaviti razumno vreme isteka za reset tokene i strogo ga sprovoditi na serverskoj strani.

Reference

Pridružite se HackenProof Discord 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 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)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podrška HackTricks
{% endhint %}