
Siber Güvenlik: Server-Side Request Forgery (SSRF) Açığı
Samet Karabulut
April 18, 2026
•3 min read
Giriş
Benim sızma testi deneyimime göre, Server-Side Request Forgery (SSRF) açığı, internet uygulamalarında sıkça karşılaştığım bir güvenlik zafiyetidir. Bu açıklar, saldırganların hedef sistemlerin iç ağlarına veya yerel sistemlerine erişim sağlamalarına olanak tanır.
SSRF açıkları, genellikle uygulamaların kullanıcı girdilerini yeterli şekilde doğrulamaması veya sanitizasyon yapmaması sonucu ortaya çıkar. Bu durum, saldırganların uygulamaları kendi isteklerini gerçekleştirmek için kullanmalarına olanak sağlar.
SSRF Açığı Nedir?
SSRF açığı, bir web uygulamasının, kullanıcı tarafından sağlanan bir URL'ye veya IP adresine istek göndermesine olanak tanıyan bir zafiyettir. Bu, saldırganların hedef sistemlerin iç ağlarına veya yerel sistemlerine erişim sağlamalarına olanak tanır.
Örneğin, bir web uygulaması, kullanıcı tarafından sağlanan bir URL'ye istek göndermek için aşağıdaki kodu kullanabilir:
$url = $_GET['url'];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Bu kod, kullanıcı tarafından sağlanan URL'ye istek göndermek için curl kullanır. Ancak, bu kod, SSRF açığına karşı savunmasızdır.
SSRF Açığını Tespit Etmek
SSRF açığını tespit etmek için, Nmap veya Nikto gibi araçları kullanabilirsiniz. Örneğin, aşağıdaki komut, hedef sistemde SSRF açığını tespit edebilir:
nmap -p 80 --script http-ssrf.nse
Bu komut, hedef sistemde SSRF açığını tespit eder ve sonuçları gösterir.
SSRF Açığını Sömürmek
SSRF açığını sömürebilmek için, saldırganlar genellikle curl veya Metasploit gibi araçları kullanır. Örneğin, aşağıdaki komut, hedef sistemde SSRF açığını sömürebilir:
curl -X GET 'http://hedef_sistem_ip/url?url=http://localhost:8080'
Bu komut, hedef sistemde SSRF açığını sömürebilir ve yerel sistemde çalışan bir servise erişim sağlar.
Çözüm ve Önlem
SSRF açığını önlemek için, uygulamaların kullanıcı girdilerini yeterli şekilde doğrulaması ve sanitizasyon yapması gerekir. Ayrıca, uygulamaların, kullanıcı tarafından sağlanan URL'leri veya IP adreslerini kontrol etmesi ve yalnızca izin verilen istekleri gerçekleştirmesi gerekir.
Örneğin, aşağıdaki kod, kullanıcı tarafından sağlanan URL'leri kontrol eder ve yalnızca izin verilen istekleri gerçekleştirir:
$url = $_GET['url'];
if (preg_match('/^https?:///', $url)) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
} else {
echo 'İzin verilmeyen URL';
}
Bu kod, kullanıcı tarafından sağlanan URL'leri kontrol eder ve yalnızca izin verilen istekleri gerçekleştirir.
Sonuç
SSRF açığı, internet uygulamalarında sıkça karşılaşılan bir güvenlik zafiyetidir. Bu açıklar, saldırganların hedef sistemlerin iç ağlarına veya yerel sistemlerine erişim sağlamalarına olanak tanır. Uygulamaların, kullanıcı girdilerini yeterli şekilde doğrulaması ve sanitizasyon yapması, SSRF açığını önlemek için önemlidir.
Yorumlar
Henüz yorum yok. İlk yorumu sen yap.