hacktricks/pentesting-web/account-takeover.md

150 lines
8.1 KiB
Markdown

# Preuzimanje naloga
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Podržite HackTricks</summary>
* 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 hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
{% endhint %}
## **Problem sa autorizacijom**
Email naloga treba pokušati da se promeni, a proces potvrde **mora biti ispitan**. 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 izvesti zloupotrebom identitetskih provajdera trećih strana:
* Kreirati nalog kod identitetskog provajdera treće strane sa sličnim emailom kao žrtva koristeći neki unicode karakter (`vićtim@company.com`).
* Provajder treće strane ne bi trebao da verifikuje email
* Ako identitetski provajder verifikuje email, možda možete napasti deo domene kao što je: `victim@ćompany.com` i registrovati tu domenu i nadati se da identitetski provajder generiše ascii verziju domene dok platforma žrtve normalizuje naziv domene.
* 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:
{% content-ref url="unicode-injection/unicode-normalization.md" %}
[unicode-normalization.md](unicode-injection/unicode-normalization.md)
{% endcontent-ref %}
## **Ponovno korišćenje reset tokena**
Ako ciljni sistem dozvoljava **ponovno korišćenje linka za reset**, treba uložiti napore da se **pronađe više linkova za reset** 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 biti napravljen, 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:
{% content-ref url="cors-bypass.md" %}
[cors-bypass.md](cors-bypass.md)
{% endcontent-ref %}
## **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:
{% content-ref url="csrf-cross-site-request-forgery.md" %}
[csrf-cross-site-request-forgery.md](csrf-cross-site-request-forgery.md)
{% endcontent-ref %}
## **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:
{% content-ref url="xss-cross-site-scripting/" %}
[xss-cross-site-scripting](xss-cross-site-scripting/)
{% endcontent-ref %}
## **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:
{% content-ref url="hacking-with-cookies/" %}
[hacking-with-cookies](hacking-with-cookies/)
{% endcontent-ref %}
## **Napad na mehanizam resetovanja lozinke**
{% content-ref url="reset-password.md" %}
[reset-password.md](reset-password.md)
{% endcontent-ref %}
## **Manipulacija odgovorom**
Ako se odgovor na autentifikaciju može **smanjiti na jednostavnu boolean vrednost, samo pokušajte da promenite false u true** i vidite da li dobijate bilo kakav pristup.
## OAuth za preuzimanje naloga
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
{% endcontent-ref %}
## 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č dobija 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 dogodilo u [**ovom izveštaju**](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea).
### 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)
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Podržite HackTricks</summary>
* 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 hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
{% endhint %}