Cookie Tossing
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ako napadač može kontrolisati poddomen ili domen kompanije ili pronađe XSS u poddomeni, moći će da izvede ovaj napad.
Kao što je navedeno u sekciji Hacking Cookies, kada se kolačić postavi na domen (specifikujući ga), koristiće se u domenu i poddomenama.
Stoga, napadač će moći da postavi specifičan kolačić na domen i poddomene tako što će uraditi nešto poput document.cookie="session=1234; Path=/app/login; domain=.example.com"
Ovo može biti opasno jer napadač može:
Fiksirati kolačić žrtve na napadačevom nalogu tako da, ako korisnik ne primeti, izvrši 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 nalogu...)
Ako se kolačić ne menja nakon prijavljivanja, napadač može samo fiksirati kolačić (session-fixation), čekati da se žrtva prijavi i zatim iskoristiti taj kolačić da se prijavi kao žrtva.
Ponekad, čak i ako se kolačići sesije menjaju, napadač koristi prethodni i takođe će dobiti novi.
Ako kolačić postavlja neku početnu vrednost (kao u flask-u gde kolačić može postaviti CSRF token sesije i ova vrednost će se održati nakon što se žrtva prijavi), napadač može postaviti ovu 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č bi takođe mogao dobiti neautentifikovani kolačić generisan od strane servera, dobiti CSRF token iz njega i iskoristiti ga.
Kada pregledač primi dva kolačića sa istim imenom delimično utičući na istu oblast (domen, poddomeni i putanja), pregledač će poslati obe vrednosti kolačića kada su obe važeće za zahtev.
U zavisnosti od toga ko ima najspecifičniju putanju ili koji je najstariji, pregledač će prvo postaviti vrednost kolačića a zatim vrednost drugog kao u: Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;
Većina vеб сајтова ће користити само прву вредност. Затим, ако нападач жели да постави колачић, боље је да га постави пре него што буде постављен други или да ga поставi sa specifičnijom putanjom.
Štaviše, sposobnost da postavite kolačić na specifičniju putanju je veoma zanimljiva 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.
Moguća zaštita protiv ovog napada bi bila da web server ne prihvata zahteve sa dva kolačića sa istim imenom ali sa dva različita vrednosti.
Da bi zaobišao scenario u kojem napadač postavlja kolačić nakon što je žrtvi već dodeljen kolačić, napadač bi mogao izazvati kolačić overflow i zatim, kada se legitiman kolačić obriše, postaviti zlonamerni.
Cookie Jar OverflowJoš jedan koristan zaobilazni put mogao bi biti da URL kodira ime kolačića jer neka zaštita proverava 2 kolačića sa istim imenom u zahtevu i zatim server dekodira imena kolačića.
Napad Cookie Tossing se takođe može koristiti za izvođenje Cookie Bomb napada:
Cookie Bomb__Host
u imenu kolačićaAko ime kolačića ima ovaj prefiks, biće prihvaćeno u Set-Cookie direktivi samo ako je označeno kao Secure, poslato sa sigurnog izvora, ne uključuje atribut Domain, i ima atribut Path postavljen na /
Ovo sprečava poddomene da primoraju kolačić na vršni domen jer se ovi kolačići mogu smatrati "zaključanim na domen"
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)