kullanici1
Mart 19, 2026
XML, uzun yıllardır kurumsal entegrasyonlarda ve yapılandırma dosyalarında kullanılan bir veri formatıdır. SOAP servisleri, SAML tabanlı kimlik doğrulama akışları, eski ERP entegrasyonları, bazı doküman formatları ve mesajlaşma altyapıları hâlâ XML’e dayanır. XML’in esnekliği avantajdır; ancak yanlış yapılandırılmış bir XML ayrıştırıcısı (parser), uygulamaya beklenmedik bir okuma/erişim kabiliyeti kazandırabilir.
XXE (XML External Entity) Injection, uygulamanın saldırgan tarafından kontrol edilen XML içeriğini işlerken harici varlıkları (external entities) çözümlemesi sonucunda ortaya çıkar. Etki, yerel dosya okuma (LFI) gibi görünen bir sızıntıdan iç ağ taramasına, servis kimlik bilgisi ifşasına ve bazı koşullarda uzaktan istek tetiklemeye kadar genişleyebilir. Cloud ve mikroservis dünyasında XXE’nin önemi, parser’ın çalıştığı konumun (network reach) ve erişebildiği dosya/servislerin değerinden gelir.
XML’de ‘entity’ kavramı, metin parçalarını veya harici kaynakları bir isim altında tanımlamaya yarar. Parser, XML’i işlerken bu entity’leri çözüp nihai içeriği üretir. Eğer uygulama dış entity çözümlemesini kapatmıyor ve saldırgan XML içeriğine müdahale edebiliyorsa, saldırgan parser’a dış kaynaklardan veri okutan veya ağ isteği yaptıran tanımlar ekleyebilir.
XXE iki şekilde karşımıza çıkar: (1) In-band XXE: Okunan veri doğrudan uygulama yanıtına yansır. (2) Blind/Out-of-band (OOB) XXE: Veri yanıtla dönmez; ancak uygulamanın dışarı yaptığı istekler, zamanlama farkları veya DNS/HTTP etkileşimi üzerinden anlaşılır. OOB, özellikle yanıtın filtrelendiği uygulamalarda kritik hâle gelir.
XXE, genellikle ‘XML kabul eden’ ama güvenli parse etme varsayımını sorgulamayan bileşenlerde ortaya çıkar. En sık rastlanan senaryolar şunlardır:
1) SOAP Tabanlı Web Servisleri:
SOAP istekleri XML tabanlıdır. Eski veya yanlış yapılandırılmış parser’lar, dış entity çözümlemesini açık bırakabilir ve XXE’ye zemin hazırlayabilir.
2) Dosya Yükleme / İçe Aktarma (Import):
Uygulama XML formatında konfigürasyon, rapor veya “data import” dosyası kabul ediyorsa; yüklenen dosya parse edilirken XXE tetiklenebilir.
3) SAML / Federasyon Akışları:
Bazı kimlik doğrulama entegrasyonlarında XML tabanlı assertion’lar işlenir. Parser ayarları güvenli değilse, kimlik katmanında XXE etkisi büyüyebilir.
4) Office/Doküman Türevleri ve XML Bazlı Formatlar:
Bazı dosya türleri (ör. XML içeren arşiv formatları) arka planda parse edildiğinde, uygulama farkında olmadan XXE’ye maruz kalabilir.
5) Mikroservisler Arası XML Mesajlaşma:
İç ağda çalışan servisler, ‘güvenilir ağ’ varsayımıyla XML parse ediyorsa; bir servis ele geçirildiğinde XXE ile iç keşif ve veri sızıntısı mümkün olabilir.
XXE’nin etkisi, parser’ın izinlerine ve ağ erişimine göre değişir. Tipik sonuçlar şunlardır:
Bu nedenle XXE, sadece ‘eski bir XML problemi’ olarak görülmemeli; özellikle entegrasyon yoğun sistemlerde aktif bir risk olarak yönetilmelidir.
XXE riskini azaltmanın en güvenilir yolu, XML parser’ı güvenli varsayılanlarla çalıştırmak ve harici entity çözümlemesini tamamen kapatmaktır. Uygulanabilir adımlar:
Özetle XXE, çoğu zaman tek bir ayarla (external entity kapatma) büyük ölçüde kontrol altına alınabilir. Ancak kalıcı güvenlik için, parser ayarları, ağ politikaları ve düşük ayrıcalık prensibi birlikte uygulanmalıdır.