Öncelikle Makinamızın ip adresini tespit etmek için netdiscover ile ağımızdaki aktif makinaları tarıyoruz.
Ardından gateway adresimiz ve kendimize ait olan adreslerin dışındaki ‘192.168.2.167’ ip adresi ‘ni tespit ettikten sonra bir nmap taraması ile kullandığı servis ve port’lar hakkında bilgi oluyoruz.
Yukarıdaki ekran görüntüsünde de göründüğü gibi çalışan servisleri listeledik.
Bunun yanında çalıştırdığı http servisi için nikto aracı ile tarama gerçekleştirdik.
Nikto ile ağ içerisinde bulunan cihazımızı taradığımızda bize yukarıdaki çıktıyı veriyor. Ardından ise hedef sistemin adresini tarayıcımız da görüntülediğimiz de ve upload alanına tıkladığımızda araç çubuğundaki sorgu dikkatimizi çekiyor.
Burada ilk düşündüğüm bu sorguyu gerçekleştirirken bir LFI(Local File Inclusion) zafiyeti’nin oluşabileceği bilindiği üzere bu zafiyet’sunucu üzerinde ki bazı kritik dosyaların okunmasına hatta bu RFI(Remote File Inclusion) ile uzaktan kod çalıştırma’ya neden olabilir.
Bundan ötürü hedef sistemdeki kullanılan php dosyalarının keşfi kritik önem taşır bu yüzden nikto’nun bulduğu bazı php dosyaları’nın yanında farklı dosyalar olabilir mi diye dirbuster aracı kullanarak bir tarama gerçekleştiriyoruz.
Daha sonrasında dirbuster’ın bulduğu sonuçlara göz attığımız da nikto ‘nun bulduğu sonuçlardan farklı olarak upload.php ve index.php dosyalarını görüyoruz .
Ardından bazı LFI payload’larını denemek için küçük bir python scripti yazdım.Bu script sayesinde payload’lar sırasıyla denenerek sonuç döndürülmeye çalışıldı.
Burada ki ana mantık payload listesindeki lfi payload’ların request modulu sayesinde denenip anında terminal ekranında bastırmaktır.
Scriptimizi çalıştırdığımızda aşağıdaki sonuçlar ile karşılaşıyoruz.
Yukarıda ki ekran görüntülerinde de gözüktüğü üzere config.php ve index.php için eklediğimiz lfi payloadlarımız çalıştı ve ekranda tam da istediğimiz gibi dosya içeriklerini base64 formatında yansıttı geriye sadece bunları decode işlemine tabi tutmamız gerekiyor.
Aşağıdaki ekran görüntüsündeki gibi terminal ekranı üzerinde echo komutu ile config.php dosyası’nın içeriğini base64 formatından decode işlemini gerçekleştiriyoruz ve sunucu üzerinde çalışan mysql veritabanı’na ait bağlantı bilgileri karşımıza geliyor.
Şimdi tek yapmamız gereken bir uzak mysql bağlantısı.Bunun içinde aşağıdaki adımları takip ediyoruz.
Yukarıdaki ekran görüntüsünde de görüldüğü üzere sırası ile ‘show databases;’ ve ‘use Users;’ komutlarını kullanarak erişim sağladığımız mysql sunucusunda Users isimli veritabanı’nı seçiyoruz.
Ardından seçmiş olduğumuz Users veritabanı içerisindeki tabloları listelemek için ‘show tables;’ komutunu kullanarak tablomuz üzerindeki sütunları görmek için ‘select * from users;’ sorgusunu yazarak görselde de gözüktüğü üzere listeliyoruz.Burada yine kullanıcı parolaları base64 ile format değiştirildiği anlaşılıyor yapmamız gereken sadece decode işlemini gerçekleştirmek.
Config dosyasında bulduğumuz sonuçların ardından index.php ve upload.php dosyalarını’da decode işlemine tabi tutuyoruz.
Decode işlemlerini gerçekleştirdikten sonra yukarıdaki ekran görüntülüründe de gözüktüğü gibi bizi dosyalardaki php kodları karşılıyor.
İlk decode işlemine tabi tutmuş olduğumuz index.php dosyasının kodlarını incelediğimiz’de lang.php dosyasına Cookie verilerini aktardığını görüyoruz.
Ardından bunu kullanarak burp suite’de gerekli cookie parametresi üzerine bir lfi payload’ı yerleştirip çalıştırıyoruz ve passwd dosyasına erişim sağlıyoruz.