CTF

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ği alias 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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu