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

91 lines
6.3 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:11:20 +00:00
<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>
2022-04-28 16:01:33 +00:00
2024-02-10 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2022-04-28 16:01:33 +00:00
2024-02-10 13:11:20 +00:00
* Ako želite videti **vašu kompaniju oglašenu na HackTricks-u** ili **preuzeti HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](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 **Twitter-u** 🐦 [**@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.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 13:11:20 +00:00
## Opis
2021-10-20 23:25:53 +00:00
2024-02-10 13:11:20 +00:00
Ako napadač može **kontrolisati poddomen ili domen kompanije ili pronađe XSS u poddomenu**, biće u mogućnosti da izvede ovaj napad.
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
Kao što je naznačeno u sekciji o hakovanju kolačića, kada se **kolačić postavi na domen (navodeći ga), koristiće se na domenu i poddomenima.**
2021-10-19 00:01:07 +00:00
{% hint style="danger" %}
2024-02-10 13:11:20 +00:00
Stoga, **napadač će moći da postavi određeni kolačić na domen i poddomene tako što će uraditi nešto poput** `document.cookie="session=1234; Path=/app/login; domain=.example.com"`
2021-10-19 00:01:07 +00:00
{% endhint %}
2024-02-10 13:11:20 +00:00
Ovo može biti opasno jer napadač može:
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
* **Fiksirati kolačić žrtve na svoj nalog** tako da, ako korisnik ne primeti, **izvršavaće radnje na napadačevom nalogu** i napadač može dobiti neke zanimljive informacije (proveriti istoriju pretraga korisnika na platformi, žrtva može postaviti svoju kreditnu karticu na nalog...)
* Ako se **kolačić ne menja nakon prijave**, napadač može jednostavno **fiksirati kolačić**, sačekati da se žrtva prijavi, a zatim **koristiti taj kolačić za prijavu kao žrtva**.
* Ako **kolačić postavlja neku početnu vrednost** (kao u slučaju flask-a gde **kolačić** može **postaviti CSRF token** sesije i ova vrednost će se održavati nakon što se žrtva prijavi), **napadač može postaviti ovu poznatu vrednost, a zatim je zloupotrebiti** (u tom scenariju, napadač može naterati korisnika da izvrši CSRF zahtev jer zna CSRF token).
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
## Redosled kolačića
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
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 obe validne za zahtev.
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
Zavisno od toga ko ima **najspecifičniju putanju** ili koji je **stariji**, pregledač će **prvo postaviti vrednost kolačića** a zatim vrednost drugog kao u: `Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;`
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
Većina **veb sajtova će koristiti samo prvu vrednost**. Dakle, ako napadač želi da postavi kolačić, bolje je da ga postavi pre nego što se postavi drugi ili da ga postavi sa specifičnijom putanjom.
2021-10-19 00:01:07 +00:00
{% hint style="warning" %}
2024-02-10 13:11:20 +00:00
Osim toga, mogućnost **postavljanja kolačića na specifičniju putanju** je veoma interesantna jer ćete moći da **naterate žrtvu da radi sa svojim kolačićem osim na specifičnoj putanji gde će zlonamerni kolačić biti poslat pre**.
2021-10-19 00:01:07 +00:00
{% endhint %}
2024-02-10 13:11:20 +00:00
## Zaobilaženje zaštite
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
Moguća zaštita od ovog napada bi bila da **veb server ne prihvata zahteve sa dva kolačića istog imena, ali sa dve različite vrednosti**.
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
Da bi zaobišao scenario u kojem napadač postavlja kolačić nakon što je žrtvi već dat kolačić, napadač može izazvati **prekoračenje kolačića** i zatim, kada se **legitimni kolačić obriše, postaviti zlonamerni**.
2021-10-19 00:01:07 +00:00
{% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-overflow.md)
{% endcontent-ref %}
2024-02-10 13:11:20 +00:00
Još jedan koristan **način zaobilaženja** može biti **URL enkodiranje imena kolačića** jer neke zaštite proveravaju da li postoje 2 kolačića istog imena u zahtevu, a zatim će server dekodirati imena kolačića.
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
## Cookie Bomba
2021-10-20 23:25:53 +00:00
2024-02-10 13:11:20 +00:00
Napad Cookie Tossing takođe može se koristiti za izvođenje napada **Cookie Bomba**:
2021-10-20 23:25:53 +00:00
{% content-ref url="cookie-bomb.md" %}
[cookie-bomb.md](cookie-bomb.md)
{% endcontent-ref %}
2024-02-10 13:11:20 +00:00
## Odbrana
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
### **Koristite prefiks `__Host` u imenu kolačića**
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
* Ako ime kolačića ima ovaj prefiks, **biće prihvaćeno samo** u Set-Cookie direktivi ako je obeleženo kao Secure, poslato sa sigurnog porekla, ne uključuje atribut Domain i ima postavljen atribut Path na /
* **Ovo sprečava poddomene da prisile kolačić na glavni domen jer se ovi kolačići mogu smatrati "zaključanim za domen"**
2021-10-19 00:01:07 +00:00
2024-02-10 13:11:20 +00:00
## Reference
2021-10-19 00:01:07 +00:00
2022-04-05 22:24:52 +00:00
* [**@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/)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:11:20 +00:00
<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>
2022-04-28 16:01:33 +00:00
2024-02-10 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2022-04-28 16:01:33 +00:00
2024-02-10 13:11:20 +00:00
* Ako želite videti **vašu kompaniju oglašenu na HackTricks-u** ili **preuzeti HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](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 **Twitter-u** 🐦 [**@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.
2022-04-28 16:01:33 +00:00
</details>