XXE: harici XML varlıkları
Kısaca: XXE (“XML External Entity”), bazı XML ayrıştırıcılarının bir belgede harici dosyalara veya adreslere başvurmasına izin vermesini istismar eder. Manipüle edilmiş bir belge böylece sunucu dosyalarını okuyabilir.
Biraz daha ayrıntılı: XML, DOCTYPE bildiriminde dosyalara (file://) veya URL’lere işaret eden varlıklara (entity) izin verir. Varsayılan ayarlı bir ayrıştırıcı bunları yükler ve içeriği belgeye ekler.
Ayrıntılı
- Sonuçlar: Yerel dosyaları okuma, iç hizmetlere istekler (SSRF), devasa iç içe varlıklarla hizmet reddi (“Billion Laughs”).
- Nerede görülür: XML’in kabul edildiği her yerde: SOAP arayüzleri, SVG yüklemeleri, Office dosyaları (DOCX, XLSX XML içeren ZIP’lerdir), RSS, SAML.
- Savunma: Ayrıştırıcıda DTD’leri ve harici varlıkları kapat (çoğu kütüphanede bir ayar, örneğin
disallow-doctype-decl), güncel kütüphaneler kullan, mümkünse XML yerine JSON. - Denetim: Geliştirmede ve testlerde varlıklı test belgeleri, bağımlılık denetimleri.
- Konum: En yaygın web risklerinin listesinde (OWASP).
Ayrıca bak: SQL enjeksiyonu