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

6.7 KiB

Bacanje kolačića

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

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 na domen i poddomene određeni kolačić radeći 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 prelivanje 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 {% endcontent-ref %}

Još jedan koristan bypass bi bio 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 Bacanje 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 {% endcontent-ref %}

Odbrane

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 glavni domen jer se ovi kolačići mogu smatrati "zaključanim za domen"

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: