mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 05:03:35 +00:00
93 lines
6.7 KiB
Markdown
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>
|