hacktricks/pentesting-web/hacking-with-cookies/cookie-tossing.md

93 lines
6.7 KiB
Markdown

# Bacanje kolačića
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **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 [**Porodicu PEASS**](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.
</details>
### Opis
Ako napadač može **kontrolisati poddomen ili domen kompanije ili pronađe XSS u poddomenu**, moći će da izvede ovaj napad.
Kao što je naznačeno u sekciji Hekovanje kolačića, kada se **kolačić postavi na domen (navođenjem), biće korišćen na domenu i poddomenima.**
{% hint style="danger" %}
Stoga, **napadač će moći da postavi određeni kolačić na domen i poddomene tako što će uraditi nešto slično kao** `document.cookie="sesija=1234; Putanja=/app/login; domen=.primer.com"`
{% endhint %}
Ovo može biti opasno jer napadač može:
* **Fiksirati kolačić žrtve na nalog napadača** tako da ako korisnik ne primeti, **izvršavaće radnje na nalogu napadača** i napadač može dobiti neke zanimljive informacije (proverite istoriju pretraga korisnika na platformi, žrtva može postaviti svoju kreditnu karticu na nalog...)
* Ako se **kolačić ne promeni nakon prijave**, napadač može jednostavno **fiksirati kolačić (fiksacija sesije)**, sačekati da se žrtva prijavi, a zatim **koristiti taj kolačić da se prijavi kao žrtva**.
* Ponekad, čak i ako se sesioni kolačić promeni, napadač može koristiti prethodni i dobiće i novi.
* Ako **kolačić postavlja neku početnu vrednost** (kao u flask gde **kolačić** može **postaviti CSRF token** sesije i ta vrednost će se održati nakon što se žrtva prijavi), **napadač može postaviti tu poznatu vrednost i zatim je zloupotrebiti** (u tom scenariju, napadač može naterati korisnika da izvrši CSRF zahtev jer zna CSRF token).
* Baš kao što postavlja vrednost, napadač takođe može dobiti neautentifikovan kolačić generisan od strane servera, dobiti CSRF token iz njega i koristiti ga.
### Redosled kolačića
Kada pregledač primi dva kolačića sa istim imenom **delimično utičući na isti opseg** (domen, poddomeni i putanja), **pregledač će poslati obe vrednosti kolačića** kada su oba validna za zahtev.
Zavisno o tome ko ima **najspecifičniju putanju** ili koji je **stariji**, pregledač će **prvo postaviti vrednost kolačića** a zatim vrednost drugog kao u: `Kolačić: idkorisnika=SpecifičnijiINajstarijiKolačić; idkorisnika=ManjeSpecifičan;`
Većina **veb sajtova će koristiti samo prvu vrednost**. Dakle, ako napadač želi da postavi kolačić, bolje je postaviti ga pre nego što se postavi drugi ili postaviti sa specifičnijom putanjom.
{% hint style="warning" %}
Osim toga, mogućnost **postavljanja kolačića u specifičniju putanju** je veoma interesantna jer ćete moći da naterate **žrtvu da radi sa svojim kolačićem osim u specifičnoj putanji gde će zlonamerni kolačić biti poslat pre**.
{% endhint %}
### Bypass zaštite
Moguća zaštita od ovog napada bi bila da **veb server neće prihvatiti zahteve sa dva kolačića sa istim imenom ali sa dve različite vrednosti**.
Da bi zaobišao scenario gde napadač postavlja kolačić nakon što je žrtvi već dat kolačić, napadač bi mogao izazvati **prekoračenje kolačića** a zatim, kada se **legitimni kolačić obriše, postaviti zlonamerni**.
{% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-overflow.md)
{% endcontent-ref %}
Još jedan koristan **bypass** mogao bi biti **URL enkodiranje imena kolačića** jer neke zaštite proveravaju da li postoje 2 kolačića sa istim imenom u zahtevu i tada će server dekodirati imena kolačića.
### Kolačićka bomba
Napad Bacanja kolačića takođe može biti korišćen za izvođenje **Kolačićke bombe**:
{% content-ref url="cookie-bomb.md" %}
[cookie-bomb.md](cookie-bomb.md)
{% endcontent-ref %}
### Odbran**e**
#### **Koristite prefiks `__Host` u imenu kolačića**
* Ako ime kolačića ima ovaj prefiks, **biće prihvaćeno samo** u Set-Cookie direktivi ako je označeno kao Sigurno, poslato sa sigurnog porekla, ne uključuje atribut Domen i ima postavljenu Putanju na /
* **Ovo sprečava poddomene da prisile kolačić na vrhunski domen jer se ovi kolačići mogu smatrati "zaključanim za domen"**
### Reference
* [**@blueminimal**](https://twitter.com/blueminimal)
* [**https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers**](https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers)
* [**https://github.blog/2013-04-09-yummy-cookies-across-domains/**](https://github.blog/2013-04-09-yummy-cookies-across-domains/)
* [**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **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 [**Porodicu PEASS**](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.
</details>