Web Cache Deception
Last updated
Was this helpful?
Last updated
Was this helpful?
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.
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ı
Origin server en sondaki / karakterini dikkate almamalı.
Cache server sondaki uzantıya veya dosya ismine bakarak cache almalı.
Kurbanı linke yönlendirmek için script.
Sunucunun desteklediği bir delimeter karakter varsa aşağıdaki liste ile deneyebiliriz.
https://example.com/my-account;a.css
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.
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
Dinamik sayfaları işaretlemek için her zaman Cache-Control
başlıklarını kullanın, no-store
ve private
yö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.