Path Traversal güvenlik açığı, bir saldırganın, web sunucusunun veya uygulamanın dosya sistemine erişmek için yetkisiz bir şekilde dosya ve dizin yollarını manipüle etmesine olanak tanıyan bir güvenlik açığıdır. Bu tür saldırılar, genellikle web uygulamalarının kullanıcıdan aldığı girdiyi yeterince doğrulamadığı veya temizlemediği durumlarda ortaya çıkar.
Zaafiyet Tespit ve İstismarı
Hedef web uygulamasında belli başlı girdiler girerek dönen sonuca göre tespit edebiliyoruz. Eğer ki sunucu üzerinde görmememiz gereken bir dizine saldırı gerçekleştirdiğimizde filtreleme yapılmışsa zaten oradaki Path’e gidemememiz gerek.
Örnek verecek olursak;
xfile=/etc/passwd
Bizim bu parametre üzerinde “/etc/passwd” dizinine gidemememiz gerek. Eğer ki gidebiliyor ve içerisindekileri okuyabiliyorsak burada Dizin aşımı zafiyetini tespit etmiş oluyoruz. Diyelim ki biz burada düz bir şekilde “/etc/passwd” yazarak gidememiş olalım. O zaman farklı parametreler araya sokarak engellemeyi aşmayı deneyebiliriz.
Örnek olarak;
xfile=../../../../../../etc/passwd
Şeklinde “../” diyerek bir önceki klasörlere geçmeye çalışarak en aşağıdaki dizine indikten sonra “/etc/passwd” klasörüne ve dosyasına ulaşmış oluyoruz. Linux işletim sisteminde de bildiğimiz gibi “etc/passwd” Linux içerisinde bulunan kullanıcı hesaplarıyla ilgili bilgiler bulunmaktadır. O yüzden buradaki klasör ve dosya karşı taraf için çok kritik bir durum. Tabii ki sadece bu durum “/etc/passwd” klasöründen ve dosyasından yararlanmakla bitmiyor bunun gibi bir sürü örnek bulunmakta.
Resim üzerinde görmüş olduğunuz gibi düz bir şekilde “/etc/passwd” yazarak gitmeye çalıştım. Web uygulaması bizlere böyle bir dizinin olmadığını söyledi. Eğer ki ben dizin aşırma yaparsam buradaki dizine gidebilmem gerek hemen deneyelim.
Bulduğumuz parametrelerde ilk dikkat çeken “filename=36.png” parametresi oldu burada anlamış oluyoruz ki dosyayı bir dizinden çekiyor eğer ki burada bir filtreleme yapılmadıysa bizim bu klasör içerisinden geri çıkıp “/etc/passwd” klasörüne ulaşabiliyor olmamız gerekiyordu. Görmüş olduğunuz gibi bende 36.png kısmını silerek “../../../../etc/passwd” şeklinde değiştirdik yani en baştaki dizine giderek etc klasörünün içerisindeki passwd dosyasına ulaşmış olduk ve içerisindeki bütün bilgileri okuyor hale geldik.
Zaafiyet Tespit ve İstismarı
Hedef web uygulamasında belli başlı girdiler girerek dönen sonuca göre tespit edebiliyoruz. Eğer ki sunucu üzerinde görmememiz gereken bir dizine saldırı gerçekleştirdiğimizde filtreleme yapılmışsa zaten oradaki Path’e gidemememiz gerek.
Örnek verecek olursak;
xfile=/etc/passwd
Bizim bu parametre üzerinde “/etc/passwd” dizinine gidemememiz gerek. Eğer ki gidebiliyor ve içerisindekileri okuyabiliyorsak burada Dizin aşımı zafiyetini tespit etmiş oluyoruz. Diyelim ki biz burada düz bir şekilde “/etc/passwd” yazarak gidememiş olalım. O zaman farklı parametreler araya sokarak engellemeyi aşmayı deneyebiliriz.
Örnek olarak;
xfile=../../../../../../etc/passwd
Şeklinde “../” diyerek bir önceki klasörlere geçmeye çalışarak en aşağıdaki dizine indikten sonra “/etc/passwd” klasörüne ve dosyasına ulaşmış oluyoruz. Linux işletim sisteminde de bildiğimiz gibi “etc/passwd” Linux içerisinde bulunan kullanıcı hesaplarıyla ilgili bilgiler bulunmaktadır. O yüzden buradaki klasör ve dosya karşı taraf için çok kritik bir durum. Tabii ki sadece bu durum “/etc/passwd” klasöründen ve dosyasından yararlanmakla bitmiyor bunun gibi bir sürü örnek bulunmakta.
Resim üzerinde görmüş olduğunuz gibi düz bir şekilde “/etc/passwd” yazarak gitmeye çalıştım. Web uygulaması bizlere böyle bir dizinin olmadığını söyledi. Eğer ki ben dizin aşırma yaparsam buradaki dizine gidebilmem gerek hemen deneyelim.
Bulduğumuz parametrelerde ilk dikkat çeken “filename=36.png” parametresi oldu burada anlamış oluyoruz ki dosyayı bir dizinden çekiyor eğer ki burada bir filtreleme yapılmadıysa bizim bu klasör içerisinden geri çıkıp “/etc/passwd” klasörüne ulaşabiliyor olmamız gerekiyordu. Görmüş olduğunuz gibi bende 36.png kısmını silerek “../../../../etc/passwd” şeklinde değiştirdik yani en baştaki dizine giderek etc klasörünün içerisindeki passwd dosyasına ulaşmış olduk ve içerisindeki bütün bilgileri okuyor hale geldik.
Bu içeriği görmek için giriş yapın.
Son düzenleme:
