| Unsafe Use of Target Blank Açıklığı (CWE-1022) | |||||
| Bu makalede Unsafe Use of Target Blank (CWE-1022), yani Güvensiz Target Blank Kullanılması açıklığı anlatılacaktır.
Açıklık Önem Derecesi: Düşük Açıklığın Etkisi: Oltalama saldırılarıyla karşı karşıya kalma Açıklığın Açıklaması: Web uygulamalarda html'deki <a> etiketi target="_blank" ile kullanıldığında link tıklaması sonucu açılan sayfa yeni sekmede açılır. Fakat target="_blank" ile açılan sayfalar bir önceki sayfanın window opener nesnesini düzenleyebilme yetkisine sahip olduklarından yeni sayfa javascript kodlaması ile bir önceki sekmedeki sayfanın window.opener nesnesini manipüle edebilir ve bir önceki sekmedeki sayfayı başka bir sayfaya yönlendirebilir. Böylece kurban yan sekmede görüntülediği sayfadan bir önceki sekmedeki sayfaya geri döndüğünde belki de mevcut orijinal sayfanın birebir kopyası bir başka siteyi (oltalama sitesini) görüntüleyebilir ve kullanıcı adı, şifre gibi hassas bilgilerini kandırılma neticesinde yönlendirildiği sayfaya kaptırabilir. Bu açıklığı göstermek adına ilgili dillerde güvensiz kod blokları ve güvenli halleri verilmiştir: HTML Güvensiz Kod Bloğu: <a href="untrustedURL" target="_blank">Link 1</a> HTML Güvenli Kod Bloğu: Link 1 Bu açıklığın görüldüğü en yaygın iki yoldan birincisi html’de <a> etiketinin target=”_blank” ile kullanılması şeklindedir. Bu kullanımda saldırganlarca yeni sekmeden önceki sekmenin oltalama sayfasına yönlendirilmesi sağlanabilir. Bunu önlemek için <a> etiketine rel attribute (özellik) ve değeri eklenerek bu açıklık kapatılmalıdır. Böylece ikinci sekme ilk sekmeyi olası saldırı durumunda yönlendiremez. Javascript Güvensiz Kod Bloğu - 1:
// Güvensiz Window.Open() Kullanılması
function newWindowOpener(untrustedURL) {
var newWindow=window.open(untrustedURL, "_blank");
}
Javascript Güvenli Kod Bloğu - 1:
// Güvenli Window.Open() Kullanılması
function newWindowOpenerSafe(untrustedURL) {
var newWindow=window.open(untrustedURL, "_blank");
newWindow.opener=null;
}
Bu açıklığın görüldüğü en yaygın iki yoldan ikincisi window.open() javascript metodunun target attribute’u (özelliği) _blank şeklinde ayarlanarak çağırılmasıdır. Bu kullanımda saldırganlarca yeni sekmeden önceki sekmenin oltalama sayfasına yönlendirilmesi sağlanabilir. Bunu önlemek için window.open() javascript metodu çağırıldıktan sonra opener nesnesi null’lanarak bu açıklık kapatılmalıdır. Böylece ikinci sekme ilk sekmeyi olası saldırı durumunda yönlendiremez. Javascript Güvensiz Kod Bloğu - 2:
// Güvensiz Window.Open() Kullanılması
function newWindowOpener(untrustedURL) {
var newWindow=window.open();
newWindow.location=untrustedURL;
}
Javascript Güvenli Kod Bloğu - 2:
// Güvenli Window.Open() Kullanılması
function newWindowOpenerSafe(untrustedURL) {
var newWindow=window.open();
newWindow.opener=null;
newWindow.location=untrustedURL;
}
Bu açıklığın görüldüğü bir başka yol da window.open() javascript metodunun çağırılması sonrası sayfayı yönlendirmedir. Bu kullanımda da saldırganlarca yeni sekmeden önceki sekmenin oltalama sayfasına yönlendirilmesi sağlanabilir. Bunu önlemek için window.open() javascript metodu çağırıldıktan sonra opener nesnesi null’lanarak bu açıklık kapatılmalıdır. Böylece ikinci sekme ilk sekmeyi olası saldırı durumunda yönlendiremez. Dışarıya target="_blank" ile götüren linkler güvenilir web sunucularına götürüyorlar olarak kabul edilse bile gidilen yeni sekmedeki üçüncü taraf web sitelerin hack'lenebileceği (ele geçirilebileceği) ve kaynak kodlarına zararlı javascript kodlarının eklenebileceği, böylece kurum web uygulaması takipçisi kullanıcıların olası ciddi bir sosyal mühendislik saldırısına maruz kalabileceği göz önünde bulundurulmalıdır. Açıklığın Önlemi: Bu açıklığı kapatmanın yolu genel manasıyla şu şekildedir: HTML Tarafında;
|
|||||
Bu yazı 27.10.2025 tarihinde, saat 01:21:27'de yazılmıştır.
|
|||||
|
|||||
| Yorumlar |
|||||
| Henüz yorum girilmemiştir. | |||||
| Yorum Ekle | |||||
Bu yazı 27.10.2025 tarihinde, saat 01:21:27'de yazılmıştır.