XML Dış Varlık Enjeksiyonu (XXE) ve Siber Güvenlik
Samet Karabulut
February 14, 2026
•3 min read
XML Dış Varlık Enjeksiyonu Nedir?
XML Dış Varlık Enjeksiyonu, bir uygulamanın XML dosyalarını işlerken güvenlik açıklarından yararlanarak sistemde yetkisiz erişim sağlamaya çalışan bir saldırı türüdür. Bu tür saldırılar, özellikle büyük ölçekli sistemlerde önemli güvenlik tehditleri oluşturabilir.
Deneyimlerime göre, XXE zafiyetleri sıklıkla XML dosyalarının işlenmesinde kullanılan kütüphaneler veya framework'lerin eski sürümlerinde ortaya çıkar. Bu durum, saldırganların sistemde mevcut olan dosyaları okumasına, hatta bazı durumlarda sistem komutları çalıştırmasına izin verebilir.
XXE Tespiti
Sızma testlerinde sıklıkla karşılaşıyorum ki, XXE zafiyetlerinin tespiti için kullanılan araçlar arasında Nmap ve Nikto gibi güvenlik tarama araçları bulunur. Bu araçlar, sistemdeki açık portları ve hizmetleri tarayarak olası zafiyetleri belirler.
nmap -p 80 --script http-xml -script-args='http-xml.url=/example.xml' hedefsite.com
Burada gösterilen komut, Nmap kullanarak hedef sistemin 80. portunda çalışan HTTP servisinin XML dosyalarını işlerken XXE zafiyetlerine karşı tarar.
XXE Sömürü
XXE zafiyetlerinin sömürülmesi için genellikle özel olarak hazırlanmış XML dosyaları kullanılır. Bu dosyalar, sistemde bulunan kritik dosyaların okunmasını veya sistem komutlarının çalıştırılmasını sağlayabilir.
<?xml version="1.0"?>
<!DOCTYPE root [ <!ENTITY xxe SYSTEM 'file:///etc/passwd'> ]>
<root><xxe>&xxe;</xxe></root>
Bu örnek XML dosyası, sistemdeki /etc/passwd dosyasının içeriğini okunmasını sağlar.
Çözüm ve Önlem
XXE zafiyetlerinden korunmak için, kullanılan kütüphaneler ve framework'lerin güncel sürümlerini kullanmak önemlidir. Ayrıca, XML dosyalarının işlenmesinde kullanılan kütüphanelerin XXE saldırılarına karşı korumalı olması da kritik önem taşır.
Örneğin, Java'da kullanılan Xerces kütüphanesinin XXE saldırılarına karşı korumalı olması için, aşağıdaki gibi bir yapılandırma kullanabilirsiniz:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
factory.setXIncludeAware(false);
factory.setExpandEntityReferences(false);
Sonuç
XML Dış Varlık Enjeksiyonu, sistemlerin güvenliğini tehdit eden önemli bir saldırı türüdür. Bu tür saldırıları önlemek için, güncel ve güvenli kütüphaneler kullanmak, XML dosyalarının işlenmesinde kullanılan kütüphanelerin XXE saldırılarına karşı korumalı olması ve güvenlik testlerinin düzenli olarak yapılması önemlidir.
Yorumlar
Henüz yorum yok. İlk yorumu sen yap.