Directory Traversal (Web For Pentester)

Merhabalar, SQL Injection bölümleri bittikten sonra Web for Pentester’da sadece 3 örnekten oluşan Directory Traversal bölümüne başlıyoruz.

Web for Pentester – SQL Injection bölümlerine bu linkten ulaşabilirsiniz: halilbalim.com/category/sql-injection/

Web for Pentester – XSS Zafiyeti örneklerine bu linkten ulaşabilirsiniz: halilbalim.com/category/web-for-pentester/

Directory Traversal Example 1

Web for Pentester anasayfasında dikkatimizi çektiği üzere sadece bir resim bulunmakta. Dolayısıyla bir sayfaya ulaşmaya ihtiyacımız yok. Verilen malzeme üzerinden neler yapabileceğimizi değerlendirelim. İlk örnekteki resmin üzerine sağ tıklayıp resmi görüntüle dediğimizde URL kısmında file=hacker.png yazan bir sayfa açılıyor. Sayfanın içeriğinde resmin text değeri bulunuyor ki bizi ilgilendiren kısım burası değil.

Sistemin Linux olduğunu bildiğimizden file parametresinin değerini değiştirmek için çabalıyoruz ve araya../../../../../../../../../../../../../etc/passwddeğerini giriyoruz.

  /dirtrav/example1.php?file=../../../../../../../../../../../etc/passwd%00 

../ ifadesi linux sistemlerde bir üst dizine gitmek için kullanılır ve ulaştığı en üst dizine ulaştıktan sonra bu ifade içinde bulunulan dizini değiştirmeyeceği için ne kadar fazla eklediğimizin bir önemi yoktur. Bu ifadeyi URL’e ekledikten sonra booom! passwd dosyası tüm şeffaflığı ile karşımızda. passwd dosyası gibi sistemde lokasyonları sabit ve okuma yetkisi olan tüm dosyaları ekrana yazdırabiliriz.

Okuma yetkisi bulunmayan dosya yazdırmaya çalışınca da aşağıda bulunan resimdeki gibi bir hata mesajı görüntüleriz.

Directory Traversal Example 2

İkinci örnekte yer alan resmi de görüntüleyip, URL’i incelediğimizde bu sefer dosyanın konumunun net bir şekilde belirtildiğini görüyoruz. Bu örnekte ise dikkat etmemiz gereken şey yine aynı, dosyanın bulunduğu yerden itibaren yukarı dizine çıkmak için önceki örnekteki gibi ../ ifadesini kullanıyoruz.

/dirtrav/example2.php?file=var/www/files/../../../../../../../../../../../etc/passwd%00

Directory Traversal Example 3

Bu örneğin ilk örnekten farkı file=hacker ile bitiyor olması. Yani, dosyanın uzantısı kod içerisinde ekleniyor. Bu yüzden bizim ilk örnekteki gibi ekleme yapmamız sonucunda, kod sonuna .png ekleyeceği için bizim yazdığımız dosya adı karşılık bulmuyor. Bunun için ise, php’de kodun bu kısmından sonrasını eklememesi için %00 yani Null değerini ekliyoruz. Sonuç olarak kodumuz bu şekilde oluyor:

 /dirtrav/example3.php?file=../../../../../../../../../../../etc/passwd%00

Web for Pentester – Directory Traversal bölümlerini de bu yazıda bitirmiş olduk. Diğer örneklerde görüşmek üzere.

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir