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

93 lines
6.6 KiB
Markdown

# Kutupa Cookie
<details>
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
Njia nyingine za kusaidia HackTricks:
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
</details>
### Maelezo
Ikiwa mshambuliaji anaweza **kudhibiti subdomain au kikoa cha kampuni au kupata XSS kwenye subdomain** ataweza kufanya shambulio hili.
Kama ilivyoelezwa katika sehemu ya Kudukua Cookies, wakati **cookie inawekwa kwa kikoa (ikiainisha) itatumika kwenye kikoa na subdomains.**
{% hint style="danger" %}
Kwa hivyo, **mshambuliaji ataweza kuweka cookie maalum kwa kikoa na subdomains kwa kufanya kitu kama** `document.cookie="session=1234; Path=/app/login; domain=.example.com"`
{% endhint %}
Hii inaweza kuwa hatari kwani mshambuliaji anaweza:
* **Kufunga cookie ya muathiriwa kwenye akaunti ya mshambuliaji** hivyo ikiwa mtumiaji hataona, **atafanya vitendo kwenye akaunti ya mshambuliaji** na mshambuliaji anaweza kupata habari muhimu (angalia historia ya utafutaji wa mtumiaji kwenye jukwaa, muathiriwa anaweza kuweka kadi yake ya mkopo kwenye akaunti...)
* Ikiwa **cookie haibadiliki baada ya kuingia**, mshambuliaji anaweza tu **kufunga cookie (session-fixation)**, kusubiri mpaka muathiriwa aingie kisha **tumia cookie hiyo kuingia kama muathiriwa**.
* Mara nyingine, hata kama cookies ya kikao inabadilika, mshambuliaji anaweza kutumia ile ya awali na atapokea ile mpya pia.
* Ikiwa **cookie inaweka thamani ya awali** (kama katika flask ambapo **cookie** inaweza **weka** **tokeni ya CSRF** ya kikao na thamani hii itabaki baada ya muathiriwa kuingia), **mshambuliaji anaweza kuweka thamani hii inayojulikana kisha kuibua** (katika hali hiyo, mshambuliaji anaweza kufanya mtumiaji atoe ombi la CSRF kwani anajua tokeni ya CSRF).
* Kama kuweka thamani, mshambuliaji pia anaweza kupata cookie isiyo na uthibitishaji iliyotengenezwa na seva, kupata tokeni ya CSRF kutoka kwake na kutumia.
### Mpangilio wa Cookie
Wakati kivinjari kinapokea cookies mbili zenye jina moja **zinazoathiri sehemu ile ile** (kikoa, subdomains na njia), **kivinjari kitatuma thamani zote za cookie** ikiwa zote ni halali kwa ombi.
Kulingana na nani ana **njia yenye maelezo zaidi** au ni ipi **ya zamani zaidi**, kivinjari kitaweka **thamani ya cookie kwanza** na kisha thamani ya nyingine kama vile: `Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;`
Zaidi **tovuti nyingi zitatumia thamani ya kwanza**. Kwa hivyo, ikiwa mshambuliaji anataka kuweka cookie ni bora kuweka kabla ya nyingine kuwekwa au kuweka na njia yenye maelezo zaidi.
{% hint style="warning" %}
Zaidi ya hayo, uwezo wa **kuweka cookie kwenye njia yenye maelezo zaidi** ni muhimu sana kwani utaweza kufanya **muathiriwa afanye kazi na cookie yake isipokuwa kwenye njia maalum ambapo cookie mbaya iliyowekwa itatumwa kwanza**.
{% endhint %}
### Kupitisha Ulinzi
Ulinzi dhidi ya shambulio hili unaweza kuwa kwamba **mtandao hautakubali maombi yenye cookies mbili zenye jina moja lakini zenye thamani tofauti**.
Ili kupitisha hali ambapo mshambuliaji anaweka cookie baada ya muathiriwa kupewa tayari cookie, mshambuliaji anaweza kusababisha **kuzidi kwa cookie** na kisha, mara tu **cookie halali imefutwa, weka ile mbaya**.
{% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-overflow.md)
{% endcontent-ref %}
Bypass nyingine muhimu inaweza kuwa **kutumia URL encode jina la cookie** kwani baadhi ya ulinzi huchunguza cookies 2 zenye jina moja katika ombi na kisha seva itadecode majina ya cookies.
### Bomu la Cookie
Shambulio la Kutupa Cookie pia linaweza kutumika kufanya shambulio la **Bomu la Cookie**:
{% content-ref url="cookie-bomb.md" %}
[cookie-bomb.md](cookie-bomb.md)
{% endcontent-ref %}
### Ulinzi
#### **Tumia kipimo cha awali `__Host` katika jina la cookie**
* Ikiwa jina la cookie lina kipimo hiki, **itaachwa tu** katika mwelekeo wa Set-Cookie ikiwa imehakikishwa, ilipelekwa kutoka asili salama, haifai kujumuisha sifa ya Kikoa, na ina sifa ya Njia iliyowekwa kwa /
* **Hii inazuia subdomains kufanya cookie kuwa kwa kikoa cha msingi kwani cookies hizi zinaweza kuonekana kama "zilizofungwa kwa kikoa"**
### Marejeo
* [**@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>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
Njia nyingine za kusaidia HackTricks:
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
</details>