XXE Injection

XXE Injection Nedir?

  • XML external entity injection, bir saldırganın bir uygulamanın XML verilerini işlemesine müdahale etmesine imkan tanıyan bir web güvenlik açığıdır.

  • Genellikle bir saldırganın uygulama sunucusu dosya sistemindeki dosyaları görüntülemesine ve uygulamanın kendisinin erişebildiği herhangi bir back-end veya external sistemle etkileşime girmesine izin verir.

  • Bazı durumlarda saldırgan, SSRF saldırıları gerçekleştirmek için XXE güvenlik açığından yararlanarak sunucuyu veya back-end sistemleri ele geçirmek için bir XXE saldırısını kullanabilir.

Yöntemler

Basic XXE

XXE SSRF

XXE RCE

Blind XXE

Blind XXE ile Veri Çekme

Request Bin: https://pipedream.com/requestbin

Ngrok: https://ngrok.com/

BASE64 Blind XXE ile Veri Çekme

Request Bin: https://pipedream.com/requestbin

Ngrok: https://ngrok.com/

Blind XXE Error Message

XInclude XXE

Eğer xml'in tamamını kontrol edemiyorsak sadece parametrelerini kontrol edebiliyorsak denenir.

SVG File Upload

Eğer bir dosya yükleme fonksiyonu svg dosyası kabul ediyorsa çalışabilir.

Apache Batik kütüphanesi kullanılıyorsa çalışır.

Local DTD ile XXE

Sadece GNOME ortamlarda çalışır.

Çözümler

  • Neredeyse tüm XXE güvenlik açıkları, uygulamanın XML parser kütüphanesinin, uygulamanın ihtiyaç duymadığı veya kullanmayı düşünmediği potansiyel olarak tehlikeli XML özelliklerini desteklemesi nedeniyle ortaya çıkar. XXE saldırılarını önlemenin en kolay ve etkili yolu bu özellikleri devre dışı bırakmaktır.

  • Genellikle, harici varlıkların çözümlemesini devre dışı bırakmak ve XInclude desteğini devre dışı bırakmak yeterlidir. Bu genellikle yapılandırma seçenekleri aracılığıyla veya varsayılan davranışı programlı olarak geçersiz kılarak yapılabilir.

Kaynaklar

Last updated