<summary><strong>Sıfırdan kahraman olmak için AWS hackleme</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
Çerezler, kullanıcının tarayıcısındaki davranışlarını kontrol eden birkaç özellikle birlikte gelir. İşte bu özelliklerin daha pasif bir sesle açıklaması:
Bir çerezin son kullanma tarihi, `Expires` özelliği tarafından belirlenir. Buna karşılık, `Max-age` özelliği bir çerezin silineceği süreyi saniye cinsinden tanımlar. **Daha modern uygulamaları yansıttığı için `Max-age`'i tercih edin.**
Bir çerezi alacak ana bilgisayarlar, `Domain` özelliği tarafından belirtilir. Varsayılan olarak, bu, çerezi veren ana bilgisayar olarak ayarlanır, alt alanlarını içermez. Ancak, `Domain` özelliği açıkça belirlendiğinde, alt alanları da kapsar. Bu, `Domain` özelliğinin belirtilmesini, alt alanlar arasında çerez paylaşımının gerektiği senaryolar için kullanışlı daha az kısıtlayıcı bir seçenek yapar. Örneğin, `Domain=mozilla.org` ayarlanarak, çerezlerin `developer.mozilla.org` gibi alt alanlarda erişilebilir olmasını sağlar.
`Path` özelliği, gönderilen URL'de bulunması gereken belirli bir URL yolu gösterir. Bu özellik, `/` karakterini bir dizin ayırıcı olarak kabul eder, alt dizinlerde eşleşmelere izin verir.
[Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) tarafından hazırlanan tablo ve hafifçe değiştirilmiştir.\
**\*Unutmayın ki Chrome80'den (şubat/2019) itibaren, çerezin varsayılan davranışı olmayan bir çerez samesite** **özelliği 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/)).\
Bu değişiklik uygulandıktan sonra, Chrome'da **Samesite politikası olmayan çerezlerin****ilk 2 dakika boyunca None** olarak **işlem göreceğini ve ardından üst düzey çapraz site POST isteği için Lax** olarak işlem göreceğini **unutmayın**.
* Eğer sayfa, isteklerin yanıtı olarak çerezleri gönderiyorsa (örneğin bir **PHPinfo** sayfasında), XSS'yi kötüye kullanarak bu sayfaya bir istek gönderip yanıtından çerezleri **çalmak mümkün olabilir** (ö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** isteklerini (bu HTTP yöntemi mevcutsa) yansıtacak şekilde **atlatılabilir**. Bu teknik **Çapraz Site Takibi** olarak adlandırılır.
* Bu teknik, JS'den TRACE isteği göndermeyi engelleyerek **modern tarayıcılar tarafından** atlatılır. Ancak, belirli yazılımlarda, IE6.0 SP2 için `TRACE` yerine `\r\nTRACE` gönderilerek bu durumu atlatan bazı yöntemler bulunmuştur.
`__Host-` ile başlayan çerezlerin süper alanlara veya alt alanlara gönderilmesine izin verilmediğini unutmamak önemlidir. Bu kısıtlama, uygulama çerezlerini izole etmeye yardımcı olur. Bu nedenle, tüm uygulama çerezleri için `__Host-` önekini kullanmak, güvenliği ve izolasyonu artırmak için iyi bir uygulama olarak düşünülebilir.
Yani, `__Host-` önekiyle korunan çerezlerin bir koruması, bunların alt alanlardan üzerine yazılmasını engellemektir. Örneğin [**Çerez Atma saldırıları**](cookie-tossing.md) engellenir. [**Çerez Parçaları: Web Oturum Bütünlüğü Güvenlik Açıklarını Ortaya Çıkarma**](https://www.youtube.com/watch?v=F_wAzF4a7Xg) adlı sunumda ([**makale**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) alt alanlardan \_\_HOST- önekli çerezlerin ayarlanabileceği, örneğin, ayracı aldatarak mümkün olduğu sunulmuştur, örneğin, "=" başında veya başında ve sonunda...:
Ya da PHP'de **çerez adının başına başka karakterler eklemek** mümkün olabilir ve bu karakterlerin alt çizgi karakterleriyle **değiştirileceği**, böylece `__HOST-` çerezlerin üzerine yazılmasına izin verilebilir:
Çerezlere gömülmüş hassas veriler her zaman incelenmelidir. Base64 veya benzer formatlarda kodlanmış çerezler genellikle çözülebilir. Bu zayıflık, saldırganların çereze ait içeriği değiştirmesine ve değiştirilmiş verilerini çereze kodlayarak diğer kullanıcıları taklit etmesine olanak tanır.
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, bir saldırgan meşru kullanıcıyı taklit edebilir.
Bu senaryoda, bir saldırgan bir kurbanı belirli bir çerez kullanmaya kandırır. Uygulama giriş yaparken yeni bir çerez atamazsa, saldırgan, orijinal çereze sahip olarak, 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ı bağlamında işlemler gerçekleştirir.
Çerezlerde kullanılan JSON Web Token'lar (JWT) de zayıflıklar içerebilir. JWT'yi hacklemek için bağlantılı belgeye erişerek potansiyel zayıflıklar ve bunları nasıl sömürüleceği hakkında detaylı bilgi edinmek önerilir.
Bu saldırı, oturum açık bir kullanıcıyı, şu anda kimlik doğrulaması yapılmış bir web uygulamasında istenmeyen eylemleri gerçekleştirmeye zorlar. Saldırganlar, her istekle otomatik olarak gönderilen çerezleri sömürebilir.
(Detaylar için [orijinal araştırmaya](https://blog.ankursundara.com/cookie-bugs/) bakın) Tarayıcılar, ismi olmayan çerezlerin oluşturulmasına izin verir, bu JavaScript aracılığıyla aşağıdaki gibi gösterilebilir:
The result in the sent cookie header is `a=v1; test value; b=v2;`. Intriguingly, this allows for the manipulation of cookies if an empty name cookie is set, potentially controlling other cookies by setting the empty cookie to a specific value:
(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 birçok web sunucusu, eski RFC2965 desteğinden kaynaklanan çerez dizelerini yanlış işler. Çift tırnakla çevrili bir çerez değeri, genellikle anahtar-değer çiftlerini ayıran noktalı virgüller içerse bile tek bir değer olarak okunur:
(Detaylı bilgilere [orijinal araştırmada](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ı düzgün bir şekilde sınırlayamazlar, bu da saldırganların çerezleri sahtelemesine olanak tanır:
Bu zayıflık, çerez tabanlı CSRF korumasına güvenen web uygulamalarında özellikle tehlikelidir, çünkü saldırganlara sahte CSRF belirteci çerezleri enjekte etme olanağı sağlar, güvenlik önlemlerini atlayabilir. Sorun, Python'ın çift çerez adlarını işleme şekli tarafından kötüleştirilir, burada son oluşum öncekileri geçersiz kılar. Ayrıca, güvensiz bağlamlarda `__Secure-` ve `__Host-` çerezleri için endişeleri artırır ve çerezlerin sahteciliğe duyarlı arka uç sunucularına iletilmesi durumunda yetkilendirme atlamalarına yol açabilir.
* Varsa "**beni hatırla**" seçeneğini kontrol edin ve nasıl çalıştığını görün. Eğer varsa ve savunmasız olabilirse, her zaman sadece **beni hatırla** çerezini kullanın, başka çerez olmadan.
Eğer giriş yaptığınızda çerez aynı kalıyorsa (veya neredeyse aynı), bu muhtemelen çerezin hesabınızın bir alanıyla ilişkili olduğu anlamına gelir (muhtemelen kullanıcı adı). O zaman şunları yapabilirsiniz:
* **Kullanıcı adını brute force** 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 **bitini brute force** edebilirsiniz çünkü deneyeceğiniz çerezlerden biri "**admin**"e ait olacaktır.
Saldırı başarıyla gerçekleştirildiyse, istediğiniz bir dizeyi şifrelemeyi deneyebilirsiniz. Örneğin, eğer **user=administrator**'ı**şifrelemek** isterseniz.
Belki bir çerez bir değere sahip olabilir ve CBC kullanılarak imzalanabilir. Ardından, değerin bütünlüğü, aynı değeri kullanarak CBC'yi kullanarak oluşturulan imza olacaktır. IV olarak bir nul vektörü kullanılması önerildiği için, bu tür bütünlük kontrolü savunmasız olabilir.
1. Kullanıcı adı**administ**'in imzasını al = **t**
2. Kullanıcı adı**rator\x00\x00\x00 XOR t**'nin imzasını al = **t'**
3. Çerezde değeri **administrator+t'** olarak ayarla (**t'**, **(rator\x00\x00\x00 XOR t) XOR t**'nin geçerli bir imzası olacaktır = **rator\x00\x00\x00**
Ö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 blok boyutunda). Bu nedenle, bir grup "a"nın nasıl şifrelendiğini bildiğinizde, "a"\*(blok boyutu)+"admin" şeklinde bir kullanıcı adı oluşturabilirsiniz. Sonra, "a" bloğunun şifrelenmiş desenini çerezden silebilirsiniz. Ve kullanıcı adı "admin" için çerezi elde edebilirsiniz.
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**