Nginx – Alias Misconfiguration | Root-Me
Merhaba, bu yazı da Root-Me Web Server Challengelardan birisi olan Nginx – Alias Misconfiguration labını çözeceğim.
Nginx – Alias Misconfiguration Zafiyeti Nedir?
Nginx – Alias Misconfiguration zafiyeti, Nginx’in alias
direktifinin yanlış yapılandırılması nedeniyle ortaya çıkan bir güvenlik açığıdır. Bu tür bir yanlış yapılandırma, saldırganların hassas dosyalara veya dizinlere yetkisiz erişim sağlamasına yol açabilir.
Nginx Alias Misconfiguration Zafiyeti Nasıl Oluşur?
Nginx’te dosya yollarını yeniden yönlendirmek için root
ve alias
gibi direktifler kullanılır. Ancak, alias
direktifi bazen yanlış kullanıldığında istemcilerin sunucunun dışında kalan dosyalara erişmesine neden olabilir.
Yanlış Kullanım (Zafiyetli Konfigürasyon)
location /static/ {
alias /var/www/app/static/;
}
Bu yapılandırmada /static/
dizini /var/www/app/static/
dizinine yönlendirilmiştir. Ancak, Nginx alias
kullanırken dizin adının tam olarak eşleşmesini bekler. Örneğin:
/static/test.png
isteğialias
yolu üzerinden/var/www/app/static/test.png
dosyasına yönlendirilir (doğru).- Fakat,
/static../secret.txt
gibi özel olarak hazırlanmış bir istek yapılırsa, yanlış dizin eşleşmesi nedeniyle/var/www/app/secret.txt
dosyasına erişilebilir.
Bu tür bir yanlış yapılandırma, saldırganların yetkisiz dosyalara erişmesine neden olabilir.
Zafiyetin teknik detaylarından söz ettikten sonra Root-Me üzerinde “Start The Challenge” butonuna tıklayarak ilgili alana gidiyorum.
Bu alanda bizi bir login ekranı karşılamaktadır. İlk iş olarak sayfanın kaynak kodlarına bakıyorum.
Kaynak kodlara gittiğimde ilk olarak dikkatimi javascript dosyası çekiyor. Bu dosyayı açalım.
Kodları incelediğimde burada XSS, MiTM ve Konsola hassas verileri yazdırma gibi zafiyetler bulunmaktadır. Bu zafiyetleri kullanmayacağım. İlgili lab ortamının isminde de görüldüğü gibi alias yanlış kullanılmasından kaynaklanan zafiyeti kullanacağım.
Kaynak kodları incelerken en alt kısımda bir ipucu verilmektedir.
<!--TODO: Patch /assets/ -->
Yukarıda görülen ipucunu ve zafiyeti kullanarak ilerleyelim. Bu zafiyeti kullanmak için aşağıdaki gibi bir istek gönderiyorum.
Evet istekte görüldüğü üzere /alias../ isteğini gönderdiğimde flag.txt dosyasını görüyorum. Flag dosyasını okuyarak çözümü bitiriyorum.
Başka çözümlerde görüşmek üzere.