XXE (XML External Entity) enjeksiyonu nedir?
XXE, bir saldırganın web uygulamanın XML verilerini işlemesine ve müdahale etmesine imkân veren bir web güvenlik açığıdır. XXE güvenlik açığından yararlanarak, hassas verilerin alınması, Uzaktan Kod Yürütme, sistem tarama, DOS hizmet reddi saldırısı gerçekleştirme ve bazı durumlarda bir saldırgan sunucu tarafı istek sahteciliği (SSRF) saldırıları gerçekleştirebilir.
XXE güvenlik açıkları nasıl ortaya çıkıyor?
Bazı web uygulamaları, tarayıcı ve sunucu arasında internet tabanlı veri alışverişini gerçekleştirmeyi sağlayan platformlar arasındaki iletişimi standart hale getirebilmek için XML işaretleme dili kullanmaktadır.
XXE güvenlik açıkları, XML spesifikasyonların çeşitli potansiyel tehlikeli özellikler içermesi ve standart ayrıştırıcıların desteklemesi nedeniyle ortaya çıkar.
XXE Saldırı Türleri
- Exploiting XXE to retrieve files (Dosyaları almak için XXE’yi kullanmak), web sunucuda bir dosyanın içeriğini HTTP yanıtında döndürüldüğünde hassas veriler alınabilir.
- SSRF saldırıları gerçekleştirmek için XXE’den yararlanma, Hassas verilerin alınmasının yanı sıra, XXE saldırılarının diğer ana etkisi, sunucu tarafı istek sahteciliği (SSRF) gerçekleştirmek için kullanılabilmesidir. Bu zafiyeti çok tehlikelidir, çünkü sunucunun erişebileceği herhangi bir URL’ye HTTP istekleri yapması için mümkün olacaktır.
- Kör XXE bant dışı veri sızdırma, hassas verilerin uygulama sunucusundan saldırganın kontrol ettiği bir sisteme iletilmesi izin veren bir saldırıdır.
- Hata mesajları yoluyla veri almak için kör XXE’den yararlanma, burada saldırgan, hassas veriler içeren bir ayrıştırma hata mesajını faydalanabilir. Bu açıklık, web uygulama HTTP yanıtında ortaya çıkan hata mesajını döndürürse etkili olacaktır ve önemli veriler /etc/passwd dosyası gibi ele geçirebilir.
- Dosya yükleme yoluyla XXE saldırı, web uygulamaların bir kısmı, kullanıcıların daha sunucu tarafında işlenen dosyaları yüklemesine izin verir. Dosya uzantısı XML kullanır veya XML alt bileşenleri içeren başka uzantılı bir dosya kullanılır, DOCX ve SVG dosyalar gibi. Yüklenen dosya kötü amaçlı XML kod içerebilir ve hassas veriler çalınabilir.
XXE Güvenlik Açıkları Nasıl Önlenir?
XXE’nin önlenmesi için:
- Mümkün olduğunda, JSON gibi daha az karmaşık veri biçimleri kullanın ve hassas verilerin serileştirilmesinden kaçının.
- Tüm XML işlemcileri ve kütüphaneleri yamalayın ve sürümü güncel tutun.
- Web uygulamadaki tüm XML ayrıştırıcılarında XML harici varlık ve DTD işlemeyi devre dışı bırakın.
- Pozitif (“beyaz listeye alma”) sunucu tarafı giriş doğrulaması, filtreleme veya sanitizasyon uygulayın.
- XML veya XSL dosya yükleme işlevinin, XSD (bir XML belgesinin yapısını tanımlayan “XML Şemaları” dır.) doğrulaması veya benzerini kullanarak gelen XML’i bütünlüğü doğrulayın.
- SAST (Source Code Analysis Tools)araçları kullanarak kaynak kodunda XXE zafiyeti olup olmadığını tespit etmeye yardımcı olabilir.
Kaynakça:
owasp.org
portswigger.net
portswigger.net
portswigger.net
portswigger.net
hdivsecurity.com
en.wikipedia.org
KVKK, ISO 27001, Bilgi ve İletişim Güvenliği Rehberi, ISO 27701, Bilgi Güvenliği, Siber Güvenlik ve Bilgi Teknolojileri konularında destek ve teklif almak için lütfen