Cookie Tossing
Reading time: 4 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Açıklama
Eğer bir saldırgan bir alt alan adını veya bir şirketin alanı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 cookie bir alana (belirterek) ayarlandığında, o alan ve alt alanlarda kullanılacaktır.
caution
Bu nedenle, bir saldırgan belirli bir cookie'yi alan ve alt alanlara ayarlayabilecektir, bunu yaparak document.cookie="session=1234; Path=/app/login; domain=.example.com"
Bu tehlikeli olabilir çünkü saldırgan:
- Kurbanın cookie'sini 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ı...)
- Bunun bir örneği burada bulunabilir burada saldırgan, kurbanın git reposuna erişim yetkisi vermek için kullanacağı belirli bölümlerde cookie'sini ayarlamıştır ama saldırganın hesabından çünkü gerekli uç noktalarda cookie'lerini ayarlayacaktır.
- Eğer cookie giriş yaptıktan sonra değişmezse, saldırgan sadece bir cookie'yi sabitleyebilir (session-fixation), kurban giriş yapana kadar bekleyebilir ve sonra o cookie'yi kurban olarak giriş yapmak için kullanabilir.
- Bazen, oturum cookie'leri değişse bile, saldırgan önceki cookie'yi kullanabilir ve yeni olanı da alabilir.
- Eğer cookie bazı başlangıç değerleri ayarlıyorsa (flask'ta olduğu gibi, cookie 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 daha sonra kullanıcının CSRF token'ını bildiği için bir CSRF isteği gerçekleştirmesini sağlayabilir).
- Değeri ayarlamak gibi, saldırgan ayrıca sunucu tarafından üretilen kimlik doğrulaması yapılmamış bir cookie alabilir, ondan CSRF token'ını alabilir ve kullanabilir.
Cookie Sırası
Bir tarayıcı, aynı isimde iki cookie aldığında kısmen aynı kapsamı etkileyen (alan, alt alanlar ve yol) tarayıcı, her iki cookie'nin değerini de geçerli olduğunda istekte gönderecektir.
Kimin en spesifik yolu olduğu veya hangisinin en eski olduğu dikkate alınarak, tarayıcı önce cookie'nin 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 cookie ayarlamak istiyorsa, başka bir cookie ayarlanmadan önce ayarlamak veya daha spesifik bir yol ile ayarlamak daha iyidir.
warning
Ayrıca, daha spesifik bir yolda cookie ayarlama yeteneği çok ilginçtir çünkü kurbanın cookie'si ile çalışmasını sağlayabilirsiniz, yalnızca kötü niyetli cookie'nin ayarlandığı spesifik yolda gönderilecektir.
Koruma Aşma
Bu saldırıya karşı olası bir koruma, web sunucusunun aynı isimde ama iki farklı değere sahip iki cookie'yi kabul etmemesi olacaktır.
Saldırganın kurbanın zaten verilmiş bir cookie'sini ayarladığı senaryoyu aşmak için, saldırgan bir cookie taşması oluşturabilir ve sonra, geçerli cookie silindikten sonra, kötü niyetli olanı ayarlayabilir.
Başka bir yararlı aşma yöntemi, cookie'nin adını URL kodlamaktır çünkü bazı korumalar bir istekte aynı isimde 2 cookie kontrol eder ve ardından sunucu cookie'lerin adlarını çözecektir.
Cookie Bomb
Bir Cookie Tossing saldırısı ayrıca bir Cookie Bomb saldırısı gerçekleştirmek için de kullanılabilir:
Savunmalar
Cookie adında __Host
ön ekini kullanın
- Eğer bir cookie adında bu ön ek varsa, yalnızca Set-Cookie direktifinde güvenli olarak işaretlenmişse, güvenli bir kaynaktan gönderilmişse, Domain niteliğini içermiyorsa ve Path niteliği / olarak ayarlanmışsa kabul edilecektir.
- Bu, alt alanların bir cookie'yi ana alana zorlamasını engeller çünkü bu cookie'ler "alan kilitli" olarak görülebilir.
Referanslar
- @blueminimal
- https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers
- https://github.blog/2013-04-09-yummy-cookies-across-domains/
- Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.