# Cookie Tossing
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}
### Açıklama
Eğer bir saldırgan **bir alt alan adını veya bir şirketin alan adını kontrol edebiliyorsa ya da bir alt alan adında bir XSS bulursa** bu saldırıyı gerçekleştirebilir.
Cookies Hacking bölümünde belirtildiği gibi, **bir çerez bir alana (belirterek) ayarlandığında, o alan ve alt alan adlarında kullanılacaktır.**
{% hint style="danger" %}
Bu nedenle, **bir saldırgan belirli bir çerezi alan ve alt alan adlarına ayarlayabilecektir, bu da şunu yaparak mümkündür:** `document.cookie="session=1234; Path=/app/login; domain=.example.com"`
{% endhint %}
Bu tehlikeli olabilir çünkü saldırgan:
* **Kurbanın çerezini saldırganın hesabına sabitleyebilir**, böylece kullanıcı fark etmezse, **saldırganın hesabında işlemleri gerçekleştirebilir** ve saldırgan bazı ilginç bilgilere ulaşabilir (kullanıcının platformdaki arama geçmişini kontrol etmek, kurbanın hesabında kredi kartı ayarlaması yapması...).
* Eğer **çerez giriş yaptıktan sonra değişmiyorsa**, saldırgan sadece **bir çerezi sabitleyebilir (oturum sabitleme)**, kurban giriş yapana kadar bekleyebilir ve sonra **o çerezi kullanarak kurban olarak giriş yapabilir**.
* Bazen, oturum çerezleri değişse bile, saldırgan önceki çerezi kullanabilir ve yeni çerezi de alabilir.
* Eğer **çerez bazı başlangıç değerleri ayarlıyorsa** (flask'ta olduğu gibi, burada **çerez** oturumun **CSRF token'ını** ayarlayabilir ve bu değer kurban giriş yaptıktan sonra korunur), **saldırgan bu bilinen değeri ayarlayabilir ve sonra bunu kötüye kullanabilir** (bu senaryoda, saldırgan kurbanın CSRF token'ını bildiği için kullanıcıyı bir CSRF isteği gerçekleştirmeye zorlayabilir).
* Değeri ayarlamak gibi, saldırgan ayrıca sunucu tarafından üretilen kimlik doğrulaması yapılmamış bir çerezi alabilir, ondan CSRF token'ını alabilir ve bunu kullanabilir.
### Çerez Sırası
Bir tarayıcı, **aynı isimde iki çerez aldığında ve bu çerezler aynı kapsamı (alan, alt alanlar ve yol) kısmen etkiliyorsa**, **tarayıcı her iki çerezin değerini de** geçerli olduğu sürece istekte gönderecektir.
Kimin **en spesifik yolu** olduğu veya hangisinin **en eski olduğu** dikkate alınarak, tarayıcı **önce çerezin değerini ayarlayacak** ve sonra diğerinin değerini ayarlayacaktır, örneğin: `Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;`
Çoğu **web sitesi yalnızca ilk değeri kullanacaktır**. Bu nedenle, bir saldırgan bir çerez ayarlamak istiyorsa, başka bir çerez ayarlanmadan önce ayarlamak veya daha spesifik bir yol ile ayarlamak daha iyidir.
{% hint style="warning" %}
Ayrıca, **daha spesifik bir yolda çerez ayarlama yeteneği** çok ilginçtir çünkü **kurbanın çerezi ile çalışmasını sağlayabilirsiniz, yalnızca kötü niyetli çerezin ayarlandığı spesifik yol dışında**.
{% endhint %}
### Koruma Aşma
Bu saldırıya karşı olası bir koruma, **web sunucusunun aynı isimde ancak iki farklı değere sahip iki çerezi kabul etmemesi** olacaktır.
Saldırganın kurbanın çerezini aldıktan sonra bir çerez ayarladığı senaryosunu aşmak için, saldırgan bir **çerez taşması** oluşturabilir ve sonra, **geçerli çerez silindikten sonra, kötü niyetli olanı ayarlayabilir**.
{% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-overflow.md)
{% endcontent-ref %}
Başka bir yararlı **aşma** yöntemi, **çerez adını URL kodlamaktır** çünkü bazı korumalar bir istekte aynı isimde 2 çerez kontrol eder ve ardından sunucu çerez adlarını çözer.
### Çerez Bombası
Bir Cookie Tossing saldırısı ayrıca bir **Çerez Bombası** saldırısı gerçekleştirmek için de kullanılabilir:
{% content-ref url="cookie-bomb.md" %}
[cookie-bomb.md](cookie-bomb.md)
{% endcontent-ref %}
### Savunmalar
#### **Çerez adında `__Host` ön ekini kullanın**
* Eğer bir çerez adı bu ön eki taşıyorsa, **yalnızca** Set-Cookie direktifinde **Güvenli** olarak işaretlenmişse, güvenli bir kaynaktan gönderilmişse, bir Alan niteliği içermiyorsa ve Yol niteliği / olarak ayarlanmışsa **kabul edilecektir**.
* **Bu, alt alanların bir çerezi ana alana zorlamasını engeller çünkü bu çerezler "alan kilitli" olarak görülebilir.**
### Referanslar
* [**@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)
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}