WEB | OWASP TOP 10 | Directory Traversal
Directory Traversal, bir web sayfası üzerinde URL üzerinden dizinler arası geçiş yapmaya yarayan bir güvenlik açığıdır. URL üzerinden saldırganın görmemesi gereken sistem dosyalarını okuyabilme hakkı verir. Nasıl yapıldığını application.security üzerinden inceleyelim.
Bob’a DealHub adında e-ticaret sitesi üzerinde zafiyet taraması gerçekleştirmesi isteniyor.
Bob web sayfası üzerinde gezinerek bilgi topluyor. Ardından bir ürün üzerinde yoğunlaşıyor yüklenen ürün resmini incelediğinde
Bob açılan resmin URL’sini incelediğinde TECH735.jpg dosyasının çağırıldığını görür. Bunun üzerine Directory Traversal açığını denemeye karar verir.
Ancak gelin önce kaynak kodlarını inceleyelim önce
Kaynak kodları incelediğimizde ”folderName” değişkenin, dizin adını tuttuğunu ”path” değişkeni ile de tüm değişkenlerin birleştirildiği görülüyor.Ardından write metodu ile tarayıcıda görüntülenmesi sağlanıyor.
Resimde vurgulanan yerde path değişkeninin değeri gösteriliyor.
Fotoğraf adresini değiştirip ../../../../etc/passwd yazarak /etc dizini altındaki passwd dosyasını okumaya çalışıyoruz.
Görüldüğü üzere passwd dosyasının içerini ekrana basıyor ve bu şekilde Directory Traversal açığını sömürmüş olduk.
Gelin bu açığın nasıl fixlendiğini kaynak kodlar üzerinden inceleyelim.
Bir önceki kaynak kodlara getCanonicalPath adında bir method eklenerek gönderilen dosyalar iki kez kontrol ediliyor. Bu metod “..” şeklinde atlatmaları yakalıyor.