<summary><strong>Jifunze kudukua AWS kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalamu wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **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.
Tarehe ya kufunga ya kuki inadhibitiwa na sifa ya `Expires`. Kinyume chake, sifa ya `Max-age` inadefini muda katika sekunde mpaka kuki ifutwe. **Chagua `Max-age` kwani inaonyesha mazoea ya kisasa zaidi.**
Wenyeji wa kupokea kuki hufafanuliwa na sifa ya `Domain`. Kwa chaguo-msingi, hii imewekwa kwa mwenyeji aliyeitoa kuki, bila kujumuisha subdomains yake. Walakini, wakati sifa ya `Domain` inawekwa wazi, inajumuisha pia subdomains. Hii hufanya ufafanuzi wa sifa ya `Domain` kuwa chaguo lisilokuwa na kizuizi, lenye manufaa kwa hali ambapo kugawana kuki kati ya subdomains ni muhimu. Kwa mfano, kuweka `Domain=mozilla.org` hufanya kuki zifikika kwenye subdomains kama `developer.mozilla.org`.
Njia maalum ya URL ambayo lazima iwepo kwenye URL iliyotakiwa kwa kichwa cha `Cookie` kutumwa inaonyeshwa na sifa ya `Path`. Sifa hii inachukulia `/` kama kipambanua cha saraka, kuruhusu mechi katika vijisehemu pia.
Meza kutoka [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) na imebadilishwa kidogo.\
**\*Tambua kwamba kutoka Chrome80 (feb/2019) tabia ya msingi ya kuki bila sifa ya samesite** **itakuwa lax** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
Tambua kuwa kwa muda, baada ya kufanya mabadiliko haya, **kuki bila sera ya SameSite****katika Chrome itatibiwa kama None** wakati wa **kwanza 2 dakika na kisha kama Lax kwa maombi ya POST ya msingi wa kiwango cha juu cha tovuti.**
* Ikiwa ukurasa unatuma kuki kama jibu la maombi (kwa mfano kwenye ukurasa wa **PHPinfo**), inawezekana kutumia XSS kutuma ombi kwa ukurasa huu na **kuiba kuki** kutoka kwa jibu (angalia mfano katika [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/).
* Hii inaweza Kupitishwa na maombi ya **HTTP ya TRACE** kama jibu kutoka kwa seva (ikiwa njia hii ya HTTP inapatikana) itaonyesha kuki zilizotumwa. Mbinu hii inaitwa **Cross-Site Tracking**.
* Mbinu hii inaepukwa na **vivinjari vya kisasa kwa kutokuruhusu kutuma ombi la TRACE** kutoka JS. Walakini, baadhi ya njia za kupitisha hii zimepatikana katika programu maalum kama kutuma `\r\nTRACE` badala ya `TRACE` kwa IE6.0 SP2.
* Njia nyingine ni kutumia mapungufu ya siku/zero ya vivinjari.
* Inawezekana **kuandika upya kuki za HttpOnly** kwa kufanya shambulio la kujaza Kikapu cha Kuki:
Ni muhimu kutambua kuwa kuki zenye kielekezi cha `__Host-` haziruhusiwi kutumwa kwa superdomains au subdomains. Kizuizi hiki husaidia katika kuzingatia kuki za programu. Hivyo, kutumia kielekezi cha `__Host-` kwa kuki zote za programu kunaweza kuchukuliwa kama mazoea mazuri ya kuboresha usalama na kuzingatia.
Kwa hivyo, moja ya kinga ya vidakuzi vilivyo na kipimo cha `__Host-` ni kuzuia kubadilishwa kutoka kwa subdomains. Kuzuia kwa mfano [**mashambulizi ya Kutupa Vidakuzi**](cookie-tossing.md). Katika mazungumzo [**Vidakuzi Vinavyovunjika: Kufichua Udhaifu wa Uadilifu wa Kikao cha Wavuti**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**karatasi**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) ilionyeshwa kuwa ilikuwa inawezekana kuweka vidakuzi vilivyo na kipimo cha \_\_HOST- kutoka kwa subdomain, kwa kudanganya parser, kwa mfano, kuongeza "=" mwanzoni au mwanzoni na mwisho...:
Au katika PHP ilikuwa inawezekana kuongeza **herufi nyingine mwanzoni** mwa jina la kuki ambazo zingebadilishwa na herufi za chini, kuruhusu kubadilisha vidakuzi vya `__HOST-`:
Data nyeti iliyofichwa katika vidakuzi daima inapaswa kuchunguzwa kwa makini. Vidakuzi vilivyofichwa kwa Base64 au muundo sawa mara nyingi vinaweza kudekodiwa. Udhaifu huu huruhusu wachomaji kubadilisha maudhui ya kuki na kujifanya kuwa watumiaji wengine kwa kuweka data yao iliyobadilishwa ndani ya kuki.
Shambulio hili linahusisha kuiba kuki ya mtumiaji ili kupata ufikiaji usioruhusiwa kwenye akaunti yao ndani ya programu. Kwa kutumia kuki iliyoibiwa, mchomaji anaweza kujifanya kuwa mtumiaji halali.
Katika hali hii, mchomaji anadanganya muathiriwa kutumia kuki maalum kuingia. Ikiwa programu haipangi kuki mpya wakati wa kuingia, mchomaji, akiwa na kuki ya awali, anaweza kujifanya kuwa muathiriwa. Mbinu hii inategemea muathiriwa kuingia kwa kuki iliyotolewa na mchomaji.
Hapa, mchomaji anashawishi muathiriwa kutumia kuki ya kikao cha mchomaji. Muathiriwa, akiamini kuwa wameingia kwenye akaunti yao wenyewe, bila kukusudia watatekeleza vitendo katika muktadha wa akaunti ya mchomaji.
Vidakuzi vya JSON Web Tokens (JWT) vilivyotumika katika vidakuzi pia vinaweza kuwa na udhaifu. Kwa habari kamili juu ya udhaifu unaowezekana na jinsi ya kuzitumia, kupata hati iliyounganishwa kwenye udukuzi wa JWT inapendekezwa.
Shambulio hili lalazimisha mtumiaji aliyeingia kutekeleza vitendo visivyotakiwa kwenye programu ya wavuti ambayo kwa sasa wamehakikiwa. Wachomaji wanaweza kutumia vidakuzi ambavyo huletwa moja kwa moja na kila ombi kwa tovuti yenye udhaifu.
(Angalia maelezo zaidi katika [utafiti wa awali](https://blog.ankursundara.com/cookie-bugs/)) Vivinjari huruhusu uundaji wa vidakuzi bila jina, ambayo inaweza kuonyeshwa kupitia JavaScript kama ifuatavyo:
Matokeo katika kichwa cha kidakuzi kilichotumwa ni `a=v1; thibitisha thamani; b=v2;`. Kwa kushangaza, hii inaruhusu udhibiti wa vidakuzi ikiwa kidakuzi cha jina tupu kimeset, hivyo kudhibiti vidakuzi vingine kwa kuweka kidakuzi tupu kwa thamani maalum:
Katika Chrome, ikiwa kielezi cha msimbo wa kielezi cha Unicode ni sehemu ya cookie iliyowekwa, `document.cookie` inaharibika, ikirudi kwa mfuatano wa herufi tupu:
( Angalia maelezo zaidi katika [utafiti wa awali](https://blog.ankursundara.com/cookie-bugs/)) Seva kadhaa za wavuti, ikiwa ni pamoja na zile za Java (Jetty, TomCat, Undertow) na Python (Zope, cherrypy, web.py, aiohttp, bottle, webob), hazishughulikii vizuri herufi za cookie kutokana na msaada uliopitwa na wakati wa RFC2965. Huzisoma thamani ya cookie iliyofungwa mara mbili kama thamani moja hata kama ina pamoja na vipande vya nukta, ambavyo kawaida vinapaswa kutenganisha jozi za funguo-na-thamani:
(Angalia maelezo zaidi katika [utafiti wa awali](https://blog.ankursundara.com/cookie-bugs/)) Uchambuzi usio sahihi wa cookies na seva, hasa Undertow, Zope, na wale wanaotumia `http.cookie.SimpleCookie` na `http.cookie.BaseCookie` ya Python, hutoa fursa za mashambulizi ya kuingiza cookie. Seva hizi hazifanikiwi kufafanua kwa usahihi mwanzo wa cookies mpya, kuruhusu wachomaji kujifanya kuwa cookies:
Mapungufu haya ni hatari hasa katika maombi ya wavuti yanayotegemea ulinzi wa CSRF kulingana na cookies, kwani inaruhusu wachomaji kuingiza cookies za CSRF zilizodanganywa, hivyo kupitisha hatua za usalama. Tatizo hili linazidishwa na jinsi Python inavyoshughulikia majina ya cookies yanayorudiwa, ambapo tukio la mwisho linapita yale ya awali. Pia inaleta wasiwasi kwa cookies za `__Secure-` na `__Host-` katika muktadha usio salama na inaweza kusababisha upitishaji wa idhini wakati cookies zinapitishwa kwa seva za nyuma zinazoweza kudanganywa.
- Angalia kama cookie ina habari yoyote ndani yake na jaribu kuibadilisha.
- Jaribu kuunda akaunti kadhaa zenye majina yanayofanana na uangalie kama unaweza kuona mfanano.
- Angalia chaguo la "**kumbuka**" ikiwepo kuona jinsi inavyofanya kazi. Ikiwepo na inaweza kuwa na mapungufu, tumia daima cookie ya **kumbuka** bila cookie nyingine yoyote.
- Angalia kama cookie ya awali inafanya kazi hata baada ya kubadilisha nenosiri.
Ikiwa cookie inabaki sawa (au karibu) unapojiingia, hii inamaanisha labda cookie hiyo inahusiana na uga fulani wa akaunti yako (labda jina la mtumiaji). Kisha unaweza:
- Jaribu **bruteforce jina la mtumiaji**. Ikiwa cookie inahifadhi tu kama njia ya uthibitisho kwa jina lako la mtumiaji, basi unaweza kuunda akaunti na jina la mtumiaji "**Bmin**" na **bruteforce** kila **biti** ya cookie yako kwa sababu moja ya cookies utakazozijaribu itakuwa ile inayomilikiwa na "**admin**".
Labda kuki inaweza kuwa na thamani na inaweza kusainiwa kwa kutumia CBC. Kisha, uadilifu wa thamani ni saini iliyoumbwa kwa kutumia CBC na thamani ile ile. Kwa kuwa inapendekezwa kutumia IV kama vector ya sifuri, aina hii ya ukaguzi wa uadilifu inaweza kuwa hatarini.
Unda mtumiaji aliyeitwa kwa mfano "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" na angalia ikiwa kuna kielelezo chochote katika kuki (kwa kuwa ECB inakificha kwa kutumia ufunguo sawa kila kibodi, herufi zilizofichwa zinaweza kuonekana ikiwa jina la mtumiaji limefichwa).
Inapaswa kuwepo kielelezo (kwa ukubwa wa kibodi iliyotumiwa). Kwa hivyo, ukijua jinsi "a" nyingi zilivyofichwa unaweza kuunda jina la mtumiaji: "a"\*(ukubwa wa kibodi)+"msimamizi". Kisha, unaweza kufuta kielelezo kilichofichwa cha kibodi ya "a" kutoka kwenye kuki. Na utakuwa na kuki ya jina la mtumiaji "msimamizi".
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* 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 [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **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 kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.