* Şirketinizi HackTricks'te **reklam vermek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
En önemli güvenlik açıklarını bulun ve daha hızlı düzeltebilin. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
Çerezler, kullanıcının tarayıcısındaki davranışlarını kontrol eden birkaç özellikle birlikte gelir. İşte bu özelliklerin daha pasif bir dilde açıklaması:
Bir çerezin son kullanma tarihi, `Expires` özelliği tarafından belirlenir. Bununla birlikte, `Max-age` özelliği çerezin silineceği süreyi saniye cinsinden belirler. **Daha modern uygulamaları yansıttığı için `Max-age` özelliğini tercih edin.**
Bir çerezi alacak olan sunucular, `Domain` özelliği tarafından belirtilir. Varsayılan olarak, bu, çerezi veren sunucuya ayarlanır ve alt alan adlarını içermez. Bununla birlikte, `Domain` özelliği açıkça belirlendiğinde, alt alan adlarını da kapsar. Bu, `Domain=mozilla.org` olarak ayarlandığında, çerezlerin `developer.mozilla.org` gibi alt alan adlarında erişilebilir olmasını sağlar.
`Path` özelliği, `Cookie` başlığının gönderilmesi için istenen URL'de bulunması gereken belirli bir URL yolu belirtir. Bu özellik, `/` karakterini bir dizin ayırıcı olarak kabul eder ve alt dizinlerde eşleşmelere izin verir.
Tablo [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) tarafından sağlanmış ve hafifçe değiştirilmiştir.\
_**SameSite**_ özelliğine sahip bir çerez, oturum gerektiren CSRF saldırılarını**önler**.
**\*Dikkat Chrome80'den (şubat/2019) itibaren, aynı site politikası olmayan bir çerezin varsayılan davranışı lax olacak** ([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/)).\
Dikkat geçici olarak, bu değişiklik uygulandıktan sonra, Chrome'da **aynı site politikası olmayan çerezler****ilk 2 dakika boyunca None** olarak **işlem görecek ve ardından üst düzey çapraz site POST isteği için Lax** olarak **işlem görecek**.
* Eğer sayfa, çerezleri bir isteğin yanıtı olarak gönderiyorsa (örneğin bir **PHPinfo** sayfasında), XSS'i istismar ederek bu sayfaya bir istek gönderip yanıttaki çerezleri **çalmak** mümkün olabilir (bir örneği [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/) adresinde bulabilirsiniz).
* Bu, sunucudan gelen yanıt olarak **TRACE****HTTP** istekleri gönderen sayfaların (örneğin bu HTTP yöntemi kullanılabilirse) çerezleri yansıtmasıyla atlatılabilir. Bu teknik **Cross-Site Tracking** olarak adlandırılır.
* Bu teknik, modern tarayıcılar tarafından JS'den TRACE isteği göndermeye izin verilmeyerek engellenir. Bununla birlikte, IE6.0 SP2 gibi belirli yazılımlarda `\r\nTRACE` yerine `TRACE` göndererek bu durumu atlatan bazı yöntemler bulunmuştur.
* Başka bir yol, tarayıcıların zero/day güvenlik açıklarının istismar edilmesidir.
* Bir Çerez Kavanozu taşmasına saldırı yaparak **HttpOnly çerezlerin üzerine yazılabilir**:
Önemli bir nokta, `__Host-` ile başlayan çerezlerin süper alan adlarına veya alt alan adlarına gönderilmesine izin verilmemesidir. Bu kısıtlama, uygulama çerezlerini izole etmeye yardımcı olur. Bu nedenle, güvenliği ve izolasyonu artırmak için tüm uygulama çerezleri için `__Host-` önekinin kullanılması iyi bir uygulama olarak kabul edilebilir.
Çerezlere gömülü hassas veriler her zaman dikkatlice incelenmelidir. Base64 veya benzeri formatlarda kodlanmış çerezler genellikle çözülebilir. Bu zayıflık, saldırganların çerezin içeriğini değiştirmesine ve değiştirilmiş verilerini tekrar çerezlere kodlamalarına izin verir.
Bu saldırı, bir kullanıcının çerezini çalarak bir uygulamadaki hesabına izinsiz erişim sağlamayı içerir. Çalınan çerez kullanılarak saldırgan, meşru kullanıcıyı taklit edebilir.
Bu senaryoda, saldırgan bir kurbanı belirli bir çerez kullanmaya kandırır. Uygulama giriş yaparken yeni bir çerez atamazsa, saldırgan, orijinal çereze sahip olduğu için kurbanı taklit edebilir. Bu teknik, kurbanın saldırgan tarafından sağlanan bir çerezle giriş yapmasına dayanır.
Burada saldırgan, kurbanı saldırganın oturum çerezini kullanmaya ikna eder. Kendi hesabına giriş yaptığına inanan kurban, aslında saldırganın hesabıyla eylemler gerçekleştirir.
JWT çerezlerinde kullanılan JSON Web Token'lar da zayıflıklar içerebilir. Potansiyel zayıflıklar ve bunları nasıl sömürüleceği hakkında daha detaylı bilgi için, JWT hackleme konusundaki bağlantılı belgeye erişmek önerilir.
Bu saldırı, oturum açmış bir kullanıcıyı, mevcut kimlik doğrulaması yapılan bir web uygulamasında istenmeyen eylemler gerçekleştirmeye zorlar. Saldırganlar, her istekle otomatik olarak gönderilen çerezleri sömürebilir.
Gönderilen çerez başlığındaki sonuç `a=v1; test değeri; b=v2;` şeklindedir. İlginç bir şekilde, boş bir isim çerezi ayarlanırsa çerezlerin manipüle edilmesine izin verir ve boş çerez belirli bir değere ayarlanarak diğer çerezlerin kontrol edilmesini sağlar:
(Daha fazla ayrıntı için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın)
Java (Jetty, TomCat, Undertow) ve Python (Zope, cherrypy, web.py, aiohttp, bottle, webob) dahil birkaç web sunucusu, eski RFC2965 desteği nedeniyle çerez dizelerini yanlış işler. Çift tırnakla çevrili bir çerez değeri, normalde anahtar-değer çiftlerini ayıran noktalı virgüller içerse bile tek bir değer olarak okunur:
(Daha fazla ayrıntı için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın)
Sunucuların, özellikle Undertow, Zope ve Python'ın `http.cookie.SimpleCookie` ve `http.cookie.BaseCookie` kullanarak çerezleri yanlış ayrıştırması, çerez enjeksiyon saldırıları için fırsatlar yaratır. Bu sunucular, yeni çerezlerin başlangıcını doğru bir şekilde sınırlamazlar ve saldırganlara çerez taklit etme imkanı verir:
Bu zafiyet, çerez tabanlı CSRF korumasına güvenen web uygulamalarında özellikle tehlikelidir, çünkü saldırganlara sahte CSRF belirteci çerezleri enjekte etme imkanı verir ve güvenlik önlemlerini atlamalarına neden olabilir. Sorun, Python'ın çift çerez adlarını işleme şekli tarafından daha da kötüleştirilir, burada son çerez adı öncekileri geçersiz kılar. Ayrıca, güvensiz bağlamlarda `__Secure-` ve `__Host-` çerezleri için endişeleri artırır ve çerezler yetkilendirme taklitine yol açabilir, bu da sahte yapılabilen arka uç sunucularına çerezlerin iletilmesi durumunda yetkilendirme atlamalarına neden olabilir.
* **Çerez**, her oturum açtığınızda **aynı** olmalıdır.
* Oturumu kapatın ve aynı çerezi kullanmaya çalışın.
* Aynı çerezi kullanarak aynı hesaba 2 cihazda (veya tarayıcıda) oturum açmayı deneyin.
* Çerezde herhangi bir bilgi olup olmadığını kontrol edin ve değiştirmeyi deneyin.
* Neredeyse aynı kullanıcı adıyla birkaç hesap oluşturmayı deneyin ve benzerlikleri görebilir misiniz.
* Varsa "**beni hatırla**" seçeneğini kontrol edin ve nasıl çalıştığını görün. Eğer varsa ve zafiyete açıksa, her zaman sadece **beni hatırla** çerezini kullanın, başka bir çerez olmadan.
* Şifrenizi değiştirdikten sonra önceki çerez hala çalışıyor mu kontrol edin.
Eğer çerez oturum açtığınızda aynı kalıyorsa (veya neredeyse aynı), bu muhtemelen çerezin hesabınızın bazı alanıyla ilişkili olduğu anlamına gelir (muhtemelen kullanıcı adı). O zaman yapabileceğiniz şeyler:
* Çok sayıda **hesap** oluşturun ve kullanıcı adları çok **benzer** olsun, algoritmanın nasıl çalıştığını**tahmin etmeye** çalışın.
* **Kullanıcı adını** **brute force** ile deneyin. Eğer çerez sadece kullanıcı adınız için bir kimlik doğrulama yöntemi olarak kaydediyorsa, o zaman "**Bmin**" kullanıcı adıyla bir hesap oluşturabilir ve çerezinizin her bir **bit**'ini **brute force** ile deneyebilirsiniz, çünkü deneyeceğiniz çerezlerden biri "**admin**"e ait olacaktır.
Eğer saldırı başarıyla gerçekleştirildiyse, istediğiniz bir dizeyi şifrelemeyi deneyebilirsiniz. Örneğin, **user=administrator**'ü **şifrelemek** isterseniz.
Bir çerezin değeri olabilir ve CBC kullanılarak imzalanabilir. Değerin bütünlüğü, aynı değeri kullanarak CBC kullanarak oluşturulan imzadır. IV olarak boş bir vektör kullanılması önerildiği için bu tür bütünlük kontrolü savunmasız olabilir.
1.**administ** kullanıcı adının imzasını alın = **t**
2.**rator\x00\x00\x00 XOR t** kullanıcı adının imzasını alın = **t'**
3. Çereze **administrator+t'** değerini ayarlayın (**t'**, **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00** için geçerli bir imza olacaktır)
Örneğin "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" adında bir kullanıcı oluşturun ve çerezde herhangi bir desen olup olmadığını kontrol edin (ECB, her bloğu aynı anahtarla şifrelediği için kullanıcı adı şifrelendiğinde aynı şifrelenmiş baytlar görünebilir).
Bir desen olmalıdır (kullanılan bloğun boyutunda). Bu nedenle, bir bloğun şifrelenmiş desenini bilerek bir kullanıcı adı oluşturabilirsiniz: "a"\*(blok boyutu)+"admin". Ardından, çerezden bir blok "a"nın şifrelenmiş desenini silebilirsiniz. Ve "admin" kullanıcı adının çerezine sahip olacaksınız.
En önemli güvenlik açıklarını bulun, böylece daha hızlı düzeltebilirsiniz. Intruder saldırı yüzeyinizi takip eder, proaktif tehdit taramaları yapar, API'lerden web uygulamalarına ve bulut sistemlerine kadar tüm teknoloji yığınınızda sorunları bulur. [**Ücretsiz deneyin**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) bugün.
* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
* Hacking hilelerinizi paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek katkıda bulunun.