2 minute read

Server-side request forgery (SSRF), saldırganın sunucu tarafından istenmeyen lokasyonlara istek yapmasına neden olan bir güvenlik zafiyetidir. Bir SSRF saldırısında saldırgan, sunucunun yalnızca dahili hizmetlere bağlantı kurmasına neden olabilir. Diğer durumlarda, sunucuyu isteğe bağlı olarak harici sistemlere bağlanmaya zorlayabilir ve potansiyel olarak kimlik bilgileri gibi hassas verileri sızdırabilir.

Lab 1 Lab 2 Lab 3 Lab 4 Lab 5 Lab 6 Lab 7

Lab-1 Basic SSRF against the local server

Bu laboratuvardadaki stock check fonksiyonu dahili sistemden veri almaktadır. Lab’ın tamamlanması için stock check URL’in değiştirip admin arayüzüne bağlanarak Carlos kullanıcısının silinmesi gerekmektedir.

Stock Check fonksiyonu incelendiğinde “stockApi” değişkeninde bir url gönderilmektedir.

image-center

Tespit edilen url carlos kullanıcısının silinmesi için manipüle edilerek sunucuya gönderilmektedir.

image-center

image-center

Lab-2 Basic SSRF against another back-end system

Bu laboratuvardaki stock check fonksiyonu iç sistemden veri almaktadır. Lab’ın tamamlanması için stock check fonksiyonu kullanılarak 192.168.0.x iç ağı taranmalı ve admin arayüzünün bulunduğu 8080 portuna bağlanılarak carlos kullanıcısı silinmelidir.

Stock Check requesti iç ağ taraması yapmak için intruder aracına gönderilmektedir.

image-center

192.168.1.107 ip’sinin ayakta olduğu tespit edilmiştir.

image-center

İlgili ip bilgisinde bulunan admin arayüzüne erişerek carlos kullanıcısı silinmektedir.

image-center

image-center

Lab-3 SSRF with blacklist-based input filter

Bu laboratuvarda bulunan stock check fonksiyonu iç ağıdan veri çekmektedir. Lab’ın tamamlanması için stock check URL değerinin değiştirilerek carlos kullanıcısının silinmesi gerekmektedir. Ancak uygulama zayif bir anti-SSRF savunmasına sahiptir.

Localhost veya 127.0.0.1 adreslerine gitmeyi denediğimizde sunucunun engellediği gözlemlenmiştir.

image-center

Engelleme işlemi güçlü olmadığından 127.1 ile atlatılabilmektedir. Ayrıca admin ismi de blacklist de bulunduğundan “a” harfi veya tüm “admin” ismi double-url encoding ile işlenip sunucuya gönderildiğinde carlos kullanıcısı silinebilmektedir..

image-center

image-center

Lab-4 SSRF with filter bypass via open redirection vulnerability

Bu laboratuvardaki stock check fonksiyonu iç ağdan veri çekmektedir. Lab’ın tamamlanması için stock check url değerinin değiştirilip carlos kullanıcısının silinmesi gerekmektedir. Stock check fonksiyonu sadece local erişim ile sınırlandırılmıştır. Bu nedenle önce bir open redirection tespit edilmesi gerekmektedir.

Next Product bağlantısında bir open redirection zafiyeti tespit edilmiştir.

image-center

Stock Check fonksiyonu sadece local uygulamanın erişiminde olduğu için uygulamadan bulunan redirect fonksiyonu kullanılarak carlos kullanıcısı silinmiştir.

image-center

image-center

Lab-5 Blind SSRF with out-of-band detection

Bu laboratuvarda bir ürün sayfası yüklendiğinde Referere başlığında belirtilen URL’i getiren analiz yazılımını kullanmaktadır. Lab’ın tamamlanması için Burp Collaborator sunucusuna HTTP requesti gerçekleştirilmesi gerekmektedir.

Uygulamada bir ürüne erişmek istediğimizde oluşan request’teki Referere başlığı Burp Collaborator bilgisi ile değiştirilip sunucuya gönderilmektedir.

image-center

Daha sonrasında collaborator incelendiğinde HTTP requestleri gözlemlenmektedir.

image-center

image-center

Lab-6 SSRF with whitelist-based input filter

Bu laboratuvardaki stock check fonksiyonu iç ağdan veri çekmektedir. Lab’ın tamamlanması için stock check URL’i değiştirilerek carlos kullanıcısının silinmesi gerekmektedir. Uygulamada anti-SSRF savunması bulunmaktadır.

grkm@stock. olarak url değiştirildiğinde uygulama kabul etmektedir. URL parser’in embedded credentials kabul etmektedir.

image-center

username bilgisinden sonra “#” karakteri ekleyip requesti gönderdiğimizde uygulamanin whitelisti tarafından yakalanıp izin verilmedigi gözlemlenmektedir. Ancak double-url encoding işlemi gerçekleştirip gönderildiğinde whitelist bypass edilmektedir.

image-center

localhost:80 ifadesini parser kullanıcı adı parola olarak algılamaktadır ve “stock.weliketoshop” ifadesini domain olarak tanımlamaktadır. Böylelikle whitlelist bypass edilmektedir. Daha sonra double-url encoding işlemi uygulanan ”#” karakteri işin içine girdiğinde uygulama bundan sonrasını location hash olarak algılamaktadır ve domain’i localhost olarak değerlendirmektedir.

image-center

image-center

Lab-7 Blind SSRF with Shellshock exploitation

Bu laboratuvarda ürün sayfası yenilendiğinde referer header’ı URL’i getiren analiz yazılımını kullanmaktadır. Lab’ın tamamlanması için blind SSRF kullanılarak OS user bilgisi elde edilmelidir.

Ürün listelemek için kullanılan request yakalanmaktadır. User-Agent header’ı Shellshock payloadı ve burp collaborator id verisi ile değiştirilmektedir. Daha sonrasında Referer bilgisi 192.168.0.X verisi ile değiştirilerek intruder yardımıyla tarama yapılmaktadır.

image-center

Collaborator incelendiğinde hedef sunucudan bize bir request yapılmıştır. Yapılan requestin içeriğinde ise bir kullanıcı adı bulunmaktadır.

image-center

image-center