hacktricks/src/pentesting-web/account-takeover.md

130 lines
5.7 KiB
Markdown

# Preuzimanje naloga
{{#include ../banners/hacktricks-training.md}}
## **Problem sa autorizacijom**
Email naloga treba pokušati promeniti, a proces potvrde **mora biti ispitivan**. Ako se utvrdi da je **slab**, email treba promeniti na onaj koji pripada nameravanoj žrtvi i zatim potvrditi.
## **Problem sa Unicode normalizacijom**
1. Nalog nameravane žrtve `victim@gmail.com`
2. Treba kreirati nalog koristeći Unicode\
na primer: `vićtim@gmail.com`
Kao što je objašnjeno u [**ovom predavanju**](https://www.youtube.com/watch?v=CiIyaZ3x49c), prethodni napad se takođe može izvršiti zloupotrebom identiteta treće strane:
- Kreirati nalog kod treće strane sa sličnim emailom kao žrtva koristeći neki unicode karakter (`vićtim@company.com`).
- Treća strana ne bi trebala da verifikuje email
- Ako identitetski provajder verifikuje email, možda možete napasti deo domena kao što je: `victim@ćompany.com` i registrovati taj domen i nadati se da identitetski provajder generiše ascii verziju domena dok platforma žrtve normalizuje ime domena.
- Prijavite se putem ovog identitetskog provajdera na platformu žrtve koja bi trebala normalizovati unicode karakter i omogućiti vam pristup nalogu žrtve.
Za više detalja, pogledajte dokument o Unicode normalizaciji:
{{#ref}}
unicode-injection/unicode-normalization.md
{{#endref}}
## **Ponovno korišćenje reset tokena**
Ako ciljni sistem dozvoljava **ponovno korišćenje reset linka**, treba uložiti napore da se **pronađe više reset linkova** koristeći alate kao što su `gau`, `wayback`, ili `scan.io`.
## **Pre preuzimanja naloga**
1. Email žrtve treba koristiti za registraciju na platformi, a lozinka treba biti postavljena (pokušaj potvrde treba izvršiti, iako nedostatak pristupa emailovima žrtve može učiniti ovo nemogućim).
2. Treba čekati dok žrtva ne registruje koristeći OAuth i potvrdi nalog.
3. Nadamo se da će redovna registracija biti potvrđena, omogućavajući pristup nalogu žrtve.
## **CORS pogrešna konfiguracija za preuzimanje naloga**
Ako stranica sadrži **CORS pogrešne konfiguracije**, možda ćete moći da **ukradete osetljive informacije** od korisnika kako biste **preuzeli njegov nalog** ili ga naterali da promeni informacije o autentifikaciji u istu svrhu:
{{#ref}}
cors-bypass.md
{{#endref}}
## **CSRF za preuzimanje naloga**
Ako je stranica ranjiva na CSRF, možda ćete moći da naterate **korisnika da izmeni svoju lozinku**, email ili autentifikaciju kako biste zatim mogli da mu pristupite:
{{#ref}}
csrf-cross-site-request-forgery.md
{{#endref}}
## **XSS za preuzimanje naloga**
Ako pronađete XSS u aplikaciji, možda ćete moći da ukradete kolačiće, lokalnu memoriju ili informacije sa web stranice koje bi vam mogle omogućiti preuzimanje naloga:
{{#ref}}
xss-cross-site-scripting/
{{#endref}}
## **Ista domena + Kolačići**
Ako pronađete ograničen XSS ili preuzimanje poddomena, mogli biste se igrati sa kolačićima (fiksirajući ih, na primer) kako biste pokušali da kompromitujete nalog žrtve:
{{#ref}}
hacking-with-cookies/
{{#endref}}
## **Napad na mehanizam resetovanja lozinke**
{{#ref}}
reset-password.md
{{#endref}}
## **Manipulacija odgovorom**
Ako se odgovor na autentifikaciju može **smanjiti na jednostavnu boolean vrednost, pokušajte da promenite false u true** i vidite da li dobijate bilo kakav pristup.
## OAuth za preuzimanje naloga
{{#ref}}
oauth-to-account-takeover.md
{{#endref}}
## Injekcija Host zaglavlja
1. Host zaglavlje se menja nakon iniciranja zahteva za resetovanje lozinke.
2. `X-Forwarded-For` proxy zaglavlje se menja u `attacker.com`.
3. Host, Referrer i Origin zaglavlja se istovremeno menjaju u `attacker.com`.
4. Nakon iniciranja resetovanja lozinke i zatim odabira ponovnog slanja maila, koriste se sve tri prethodno navedene metode.
## Manipulacija odgovorom
1. **Manipulacija kodom**: Status kod se menja u `200 OK`.
2. **Manipulacija kodom i telom**:
- Status kod se menja u `200 OK`.
- Telo odgovora se menja u `{"success":true}` ili prazan objekat `{}`.
Ove tehnike manipulacije su efikasne u scenarijima gde se JSON koristi za prenos i prijem podataka.
## Promena emaila trenutne sesije
Iz [ovog izveštaja](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea):
- Napadač traži da promeni svoj email na novi
- Napadač prima link za potvrdu promene emaila
- Napadač šalje žrtvi link kako bi ga kliknula
- Email žrtve se menja na onaj koji je naveo napadač
- Napadač može povratiti lozinku i preuzeti nalog
Ovo se takođe desilo u [**ovom izveštaju**](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea).
### Zaobilaženje verifikacije emaila za preuzimanje naloga
- Napadač se prijavljuje sa attacker@test.com i verifikuje email prilikom registracije.
- Napadač menja verifikovani email na victim@test.com (bez sekundarne verifikacije pri promeni emaila)
- Sada web sajt omogućava victim@test.com da se prijavi i zaobišli smo verifikaciju emaila korisnika žrtve.
### Stari kolačići
Kao što je objašnjeno [**u ovom postu**](https://medium.com/@niraj1mahajan/uncovering-the-hidden-vulnerability-how-i-found-an-authentication-bypass-on-shopifys-exchange-cc2729ea31a9), bilo je moguće prijaviti se na nalog, sačuvati kolačiće kao autentifikovani korisnik, odjaviti se, a zatim se ponovo prijaviti.\
Sa novim prijavljivanjem, iako su možda generisani različiti kolačići, stari su ponovo počeli da rade.
## Reference
- [https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050](https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050)
- [https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea)
{{#include ../banners/hacktricks-training.md}}