| Potential Clickjacking on Legacy Browsers Açıklığı (CWE-693) | |||||
| Bu makalede Potential Clickjacking on Legacy Browsers (CWE-693), yani Eski Web Tarayıcılar için Clickjacking Önlemi Eksikliği açıklığı anlatılacaktır.
Açıklık Önem Derecesi: Düşük Açıklığın Etkisi: Kullanıcı Fark etmeden Kullanıcıya İşlem Yaptırma Açıklığın Açıklaması: Bir web sayfada kullanıcının fare tıkının çalınmasına clickjacking saldırısı adı verilir. Bu saldırıda web sayfa görünmez olarak <iframe>’lenir ve sahte/korsan bir web sayfanın üzerine bindirilir veya web sayfa görünmez olarak <frame>lenir ve açıklıklı web sayfanın üzerine bindirilir. Kullanıcı ilgili sayfada tık işlemi yaptığında (örn; bir linke veya butona tıkladığında) kullanıcının fare tıkı aslında görünmez olan açıklıklı web sayfasında çalışır. Bu durum kullanıcının açıklı web sayfada beklemediği, arzu etmediği eylemleri gerçekleştirmesine yol açabilir. Örneğin kullanıcı ayarlarını değiştirme, kullanıcı kayıtlarını silme, kullanıcı webcam’ini aktifleştirme (enable etme),... gibi. Bu açıklık saldırganın özel hazırlanmış üst katman oluşturmasına izin verir. Açıklığın temel sebebi ise web uygulamanın web sayfalarının bir başka web uygulamasına veya aynı web uygulamaya frame olarak yüklenebilir olmasındandır. Web uygulama bir web sayfasının frame içerisinde yüklenebilmesini önleyen uygun bir frame-busting script önlemi uygulamalıdır. Modern web tarayıcılar söz konusu iken uygulamalar bu açıklığı uygun bir Content-Security-Policy veya X-Frame-Options yanıt başlıkları ile kapatabilirler. Ancak birçok eski web tarayıcıda bu yanıt başlıkları (bu özellik) desteklenmemektedir. Bu nedenle bu açıklığı Javascript ile giderecek daha manuel bir yaklaşıma ihtiyaç vardır. Sonuç olarak eski web tarayıcılarda clickjacking saldırılarını önlemek için frame-busting script’i kullanılmalıdır. Frame-Busting önlemi barındırmayan Clickjacking açıklıklı web sayfaları “Eski Web Tarayıcılar İçin Clickjacking Önlemi Eksikliği” (CWE-693) açıklığı şeklinde işaretlenirler. Bu açıklığı örneklemek maksadıyla “Eski Web Tarayıcılar İçin Clickjacking Önlemi Eksikliği” açıklığı barındıran bir web sayfası örnek olarak verilmiştir. Açıklıklı X Web Sayfası:
<html>
<body>
<button onclick="clicked();">
Click here if you love ducks
</button>
</body>
</html>
Piyasada bu açıklığı kapamaya dönük çok çeşitli Frame-busting önerileri vardır ve çoğu güvensizdir. Bu web sayfasına güvensiz (güvenliği atlatılabilir) frame-busting önlem kodu konulduğu hale şu şekilde bir örnek verilebilir. Güvensiz (Güvenliği Atlatılabilir) Frame-Busting Önlemli X Web Sayfası:
<html>
<head>
<script>
if ( window.self.location != window.top.location ) {
window.top.location = window.self.location;
}
</script>
</head>
<body>
<button onclick="clicked();">
Click here if you love ducks
</button>
</body>
</html>
Bu önlem frame’lenen sayfa için frame html etiketine konulacak sandbox attribute’u (özelliği) ile atlatılabilir (bypass’lanabilir) ve clickjacking saldırısı frame-busting önlemine rağmen başarılı olabilir. Bu nedenle güvenli Frame-Busting kodu kullanılmalıdır. Web sayfanın güvenli frame-busting önlemli hali şu şekilde olacaktır: Güvenli Frame-Busting Önlemli X Web Sayfası:
<html>
<head>
<style> html {display : none; } </style>
<script>
if ( self === top ) {
document.documentElement.style.display = 'block';
}
else {
top.location = self.location;
}
</script>
</head>
<body>
<button onclick="clicked();">
Click here if you love ducks
</button>
</body>
</html>
Açıklığın Önlemi: Önlemler için genel olarak takip edilmesi gereken adımlar şu şekildedir:
<html>
<head>
<style> html {display : none; } </style>
<script>
if ( self === top ) {
document.documentElement.style.display = 'block';
}
else {
top.location = self.location;
}
</script>
</head>
...
...
</html>
Yararlanılan Kaynaklar:
|
|||||
Bu yazı 25.10.2025 tarihinde, saat 14:24:27'de yazılmıştır.
|
|||||
|
|||||
| Yorumlar |
|||||
| Henüz yorum girilmemiştir. | |||||
| Yorum Ekle | |||||
Bu yazı 25.10.2025 tarihinde, saat 14:24:27'de yazılmıştır.