Dizin Aşımı (Directory Traversal) Zafiyeti

Web uygulamalarında karşımıza çıkabilecek bir güvenlik zafiyeti de Dizin Aşımı (Directory Traversal)’dır. Dizin aşımı zafiyeti kullanıcı tarafından sağlanılan girdiler ile web sunucusu üzerinde erişilmemesi gereken dosyalara okuma veya yazma erişimi sağlanabilmesidir.

directory traversal

Gerekli girdi kontrollerinin (filtreleme/kodlama vb.) yapılmadığı dinamik sayfalardaki uygulamaya bağlanan saldırgan bu zafiyeti istismar ederek sunu üzerinde normalde erişmemesi gereken dosyaları okuyabilir.

 

Dizin Aşımı Zafiyeti Nasıl Tespit Edilir?

Dizin aşımı zafiyeti hedef web uygulaması üzerinden belli girdiler girerek farklı dosya isimlerine veya dönen sonuca göre tespit edilebilir.

Genellikle saldırganlar ilk olarak herhangi bir filtreleme olup olmadığını tespit etmek amacıyla “traversal sequence”lerinin bloklanıp bloklanmadığını test ederler.Gönderdiğiniz dosya isminin uygulama tarafından önceden belirlenmiş bir dizin ismiyle birleştirildiği varsayımı ile parametre değerine var olmayan bir dizin ismi eklendikten sonra çift nokta ve ters taksim işaretleri eklenir. 

Örneğin,

  • “file=foo/file1.txt” bu değere şu şekilde test gönderilir: “file=foo/bar/../file.txt”

Eğer ki her iki durumda da aynı dizine taşıyorsa uygulama açıklık taşıyor olabilir. Her ikidurumda da farklı sonuçlar gösteriyorsa geçersiz bir dizin oluşmasına neden oluyor olabilir.

Yukarıdaki testte uygulama davranışı değişmiyor ve hata alınmıyorsa başlangıç dizini aşmak için şu adımlar uygulanabilir:

  • ../../../../../../../../../../../../etc/passwd
  • ../../../../../../../../../../../../var/www

 

Dizin Aşımı Zafiyeti Nasıl Giderilir?

Hata alınmıyorsa JModSecurity RS’in “40_generic_attacks.conf” ile “42_tight_security.conf” (paronakay mod kural seti) setlerini kullanarak klasik anlamda path traversal açıklarını engelleyebilmektedir. Yalnız paranoyak moddaki kural seti çok sıkı olduğundan çok fazla “false-positive” oluşturabilmektedir. Bununla birlikte “absoulte path traversal” türündeki path traversal varyasyonları ModSecurity ile başarılı bir şekilde engellenebilir.

Kısaca,

Dizin aşımı zafiyeti saldırganların normalde erişememesi gereken dizinleri erişebilmesini ve hassas verileri okuyabilmesini sağlayan bir güvenli açığıdır. Zafiyet, açığa çıkartılabilecek hassas verilerin türüne göre farklı tehlike seviyeleriyle nitelendirilebilmektedir.