Bu yazıda PriviaHub platformunda bulunan ve emekliye ayrılan “ICECREAM” adlı makinenin çözüm adımları anlatılmaktadır. İlk olarak makinede bulunan açık portların, açık portlar üzerinde çalışan güncel servislerin ve işletim sisteminin tespit edilmesi için tarama başlatılmıştır. Tarama işlemi için NMAP aracı kullanılarak, nmap -A <<IP_Adresi>> -Pn -v komutu çalıştırılmıştır. -A parametresi SYN taraması, güncel servis versiyon taraması, işletim sistemi taraması ve traceroute taraması yapan bir parametredir. -Pn parametresi ise varsayılan olarak PING taraması yapan nmap aracının PING isteğine kapalı makinelere tarama yapması amacıyla kullanılır. Bunun nedeni PriviaHub platformunda bulunan makinelerin gerçek şirket ağlarından esinlenerek oluşturulmasıdır.
PriviaHub platformunda bulunan birçok makine PING’e kapalıdır. -v parametresi ise detaylı bilgi vermek amacıyla kullanılmıştır. Yapılan tarama işlemi sonucunda 80 numaralı portun açık olduğu, bu port üzerinde “Apache 2.4.39” servisinin çalıştığı ve işletim sisteminin “Windows Server 2012” olduğu tespit edilmiştir.
Açık olan 80 numaralı port üzerinden web tarayıcısı ile Apache servisi üzerinde çalışan web uygulamasına erişim sağlanmıştır.
Anasayfa üzerinden “ABOUT” sayfasına erişildiğinde, bu sayfaya ait içeriğin gelmesi için “file” adlı bir parametreye sayfaya ait yol atanmıştır.
Bu atama işlemi ile PHP programlama dilinin “include()” fonksiyonundan yararlanılmaktadır ve “file” parametresine atanacak olan tüm yerel dosyaların içeriği “index.php” adlı sayfanın içeriğine eklenmektedir. Bu durum ortaya LFI (Local File Inclusion) güvenlik açığını çıkarmaktadır. Deneme amaçlı olarak “C:\Windows\win.ini” yolu belirtilerek win.ini adlı dosyanın içeriği başarıyla görüntülenmiştir.
Bunun üzerine LFI güvenlik açığından yararlanılarak bayrakların bulunduğu dizin yolları “file” parametresine atanmıştır ve bayraklar index.php sayfası üzerinde görüntülenmiştir.