
XML External EntityInjection (XXE) Zafiyeti
Samet Karabulut
February 24, 2026
•3 min read
Giriş
XML External Entity (XXE) Injection, web uygulamalarında karşılaştığım kritik bir güvenlik açığıdır. Bu zafiyet, saldırganların XML dış varlık dosyalarınıManipüle etmelerine olanak tanır. Benim deneyimime göre, XXE Injection, sızma testlerinde sıkça karşılaşılan bir sorundur.
XML External Entity (XXE) Injection, XML dosyalarında tanımlanan dış varlık dosyalarınınManipüle edilmesini sağlar. Bu, saldırganların sunucunun yerel dosyalarına erişimini veya dış kaynaklara bağlanmasını mümkün kılar. Ben, sızma testlerinde gördüğüm kadarıyla, bu tür açıkların çoğu, yanlış yapılandırılmış XML parse edici veya XML dosyalarında yeterli güvenlik önlemlerinin alınmamasından kaynaklanmaktadır.
XXE Injection Nedir?
XXE Injection, XML dosyalarında tanımlanan dış varlık dosyalarınıManipüle ederek, sunucunun yerel dosyalarına erişimini veya dış kaynaklara bağlanmasını sağlayan bir güvenlik açığıdır. Bu zafiyet, XML parse edicisi yanlış yapılandırılmış veya XML dosyalarında yeterli güvenlik önlemleri alınmamış olduğunda ortaya çıkar.
Tespit
Ben, XXE Injection tespiti için genellikle Nmap veya Nikto gibi araçları kullanıyorum. Bu araçlar, web uygulamalarının XML dosyalarını tarayarak, XXE Injection zafiyetini belirlemeye yardımcı olurlar. Örneğin, Nmap ile bir web uygulamasını tararken, aşağıdaki komutu kullanabilirim:
nmap -p 80 --script http-xml-xxe.nse example.com
Bu komut, example.com adresindeki web uygulamasının 80. portunu tarayarak, XXE Injection zafiyetini belirler.
Sömürü
XXE Injection sömürüsü, genellikle saldırganların sunucunun yerel dosyalarına erişimini veya dış kaynaklara bağlanmasını mümkün kılar. Ben, XXE Injection sömürüsü için genellikle curl veya Metasploit gibi araçları kullanıyorum. Örneğin, curl ile bir web uygulamasına aşağıdaki isteği göndererek, XXE Injection zafiyetini sömürebilirim:
curl -X POST -H "Content-Type: application/xml" -d "<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE root [ <!ENTITY xxe SYSTEM 'file:///etc/passwd'> ]><root><xxe>&xxe;</xxe></root>" example.com
Bu istek, example.com adresindeki web uygulamasına, XXE Injection zafiyetini sömüren bir XML dosyası gönderir.
Çözüm ve Önlem
XXE Injection zafiyetini önlemek için, web uygulamalarında XML parse edicisini doğru şekilde yapılandırarak, XML dosyalarında yeterli güvenlik önlemlerini almak önemlidir. Ben, XXE Injection önlemleri için genellikle aşağıdaki adımları takip ediyorum:
1. XML parse edicisini doğru şekilde yapılandırın.
2. XML dosyalarında yeterli güvenlik önlemlerini alın.
3. Web uygulamasını düzenli olarak güncelleyin.
Sonuç
XXE Injection, web uygulamalarında kritik bir güvenlik açığıdır. Ben, XXE Injection tespiti ve sömürüsü için çeşitli araçları kullanıyorum. Web uygulamalarında XML parse edicisini doğru şekilde yapılandırarak, XML dosyalarında yeterli güvenlik önlemlerini almak, XXE Injection zafiyetini önlemek için önemlidir. Sızma testlerinde karşılaştığım bu tür açıkların çoğu, yanlış yapılandırılmış XML parse edici veya XML dosyalarında yeterli güvenlik önlemlerinin alınmamasından kaynaklanmaktadır.
Yorumlar
Henüz yorum yok. İlk yorumu sen yap.