Web Cache Deception
Web Cache Deception Nedir?
Web cache deception, bir saldırganın bir web önbelleğini hassas, dinamik içeriği depolaması için kandırmasını sağlayan bir güvenlik zafiyetidir.
Bu zafiyet, önbellek sunucusu ile kaynak sunucusunun istekleri işleme şekilleri arasındaki tutarsızlıklardan kaynaklanır.

Cache Kontrolü
Uygulamada cache olup olmadığını anlamak için aşağıdakileri kontrol edebiliriz. Zaten cache yoksa zafiyet olamaz.
X-Cache Header
Cache-Control Header
Yanıtlar arası çok zaman farkı
Static Extension and Directory
Origin server en sondaki / karakterini dikkate almamalı.
Cache server sondaki uzantıya veya dosya ismine bakarak cache almalı.
Redirect Kodu
Kurbanı linke yönlendirmek için script.
Delimeter List
Sunucunun desteklediği bir delimeter karakter varsa aşağıdaki liste ile deneyebiliriz.
https://example.com/my-account;a.css
Origin Server Directory Normalization
Origin server %2f karakterini encode etmeli
/static/..%2fmy-account -> /my-account
Cache server %2f karakterini encode etmemeli
/static/..%2fmy-account -> /static/..%2fmy-account
Eğer bu şekilde ise aşağıdaki payloadları kullanırız.
Cache Server Directory Normalization
Origin server %2f karakterini encode etmemeli fakat delimeter çözmeli
/my-account;%2f%2e%2e%2fstatic -> /my-account
Cache server %2f karakterini encode etmeli fakat delimeter çözmemeli
/my-account;%2f%2e%2e%2fstatic -> /static
Otomatize
Önlemler
Dinamik sayfaları işaretlemek için her zaman
Cache-Controlbaşlıklarını kullanın,no-storeveprivateyönergeleriyle ayarlayın.CDN ayarlarınızı, önbelleğe alma kurallarınızın
Cache-Controlüstbilgisini geçersiz kılmayacağı şekilde yapılandırın.CDN'nizin web cache deception saldırılarına karşı sahip olduğu tüm korumaları etkinleştirin. Örneğin, Cloudflare's Cache Deception Armor.
Kaynak sunucu ile önbelleğin URL yollarını yorumlama biçimleri arasında herhangi bir tutarsızlık olmadığını kontrol edin.
Araçlar
Kaynaklar
Last updated