- 30 Nis 2012
- 2,728
- 13
XML External Entity (XXE) Nedir ?
XXE açıkları 2017 yılında OWASP Top 10 listesinde ilk kez yer aldı ve hemen 4 numaraya ulaştı. Ciddi sonuçları olabilir ve büyük güvenlik riskleri olarak değerlendirilmelidirler.
XML External Entity (XXE), yaygın olarak kullanılan XML ayrıştırıcılarının bir özelliği olan saldırı türüdür. Kötü niyetli kişinin herhangi bir uygulamanın XML veriline müdahale etmesine izin veren bir güvenlik açığıdır. Genellikle kötü niyetli kişinin uygulamanın sunucusunda ki dosyaları görüntülemesine ve erişebileceği herhangi bir backdoor veya harici sistemle etkileşime gitmesine izin verir. Bazen kötü niyetli kişi SSRF saldırıları gerçekleştirmek için XXE güvenlik açığını kullanabilir. Yine XXE kullanarak DOS saldırılarına neden olabilir ve ayrıca yerel/küresel hizmetlere de erişim sağlayabilir. XXE bağlantı noktası taraması etkinleştirerek uzaktan kod yürütülmesine neden olabilir.
XXE Nasıl Oluşur ?
XXE açıklarının bir çoğu, uygulamada gereksinim olmadığı halde var olan XML özelliklerinden dolayı meydana gelmektedir.
Bir takım uygulamalar tarayıcı ile sunucu arasında veri iletişimini gerçekleştirmek için XML biçimini kullanırlar. Bunu yapan uygulamalar, sunucudaki XML verilini işlemek için her zaman standart bir kütüphane veya platform kullanır. XXE güvenlik açığı ise XML'nin potansiyel olarak tehlikeli özellikler içerdiğinden ve standart ayrıştırıcılar bu özellikleri uygulama tarafından normalde kullanmasalar bile desteklendiğinden ortaya çıkar.
XXE Güvenlik Açığı İçin Alınacak Önlemler Nelerdir ?
Uygulamada kullanılan tüm XML işlemcileri ve kitaplıkların sürümlerini güncelleyebilirsiniz. SOAP'ı 1.2 veya daha yüksek bir sürüme güncellemeniz gerekmektedir.
XML ayrıştırıcılarında Documént Type Definition (DTD) işlemeyi devre dışı bırakabilirsiniz.
XML belgelerinde, dışarıdan girilen verileri önlemek adına bir beyaz liste sunucu taraflı giriş doğrulama veya filtreleme işlemi uygulayabilirsiniz.
SAST araçları, XXE'nin kaynak kodunda algılanmasına yardımcı olabilir, ancak manuel kod incelemesi birçok entegrasyona sahip büyük, karmaşık uygulamalarda en iyi alternatiftir.
JSON gibi daha az karmaşık veri biçimlerini kullanabilirsiniz.
XXE Güvenlik Açığı Kullanımı
XXE güvenlik açığını test etmek için ise Acunetix'in hazırladığı SecurityTweets - HTML5 test website for Acunetix Web Vulnerability Scanner sitesini kullanacağız. Öncelikle Burp Suite aracımızı çalıştırıyoruz ve siteye giriş yapıyoruz sonra sol üstte Login butonuna basıyoruz ve ardından açılan pop-up'da ise Forgot Pwd? butonuna basıyoruz.
Ardından gelen isteği de (Request) CTRL+R kombinasyonu ile Repeater'a yolluyoruz.
Şimdi ise XXE güvenlik zafiyetini kullanmak için bir payload yazıp tekrardan gönderme işlemini gerçekleştireceğiz. Payloadımızı yazdıktan sonra enjekte işlemimizi gerçekleştiriyoruz. Bizlerin yazmış olduğu payload doğrultusunda bir çıktı aldığımız için XXE güvenlik açığının bulunduğunu görmekteyiz.
XXE güvenlik açığı hakkında test işlemimizi Acunetix'in hazırladığı ortamda yapmış bulunmaktayız. Sizlerde XXE güvenlik açığını test etmek istiyorsanız HackTheBoxev0ops makinesini çözebilirsiniz. İlgili makinede kullanmanız gereken bir XXE güvenlik açığı bulunmaktadır
XXE açıkları 2017 yılında OWASP Top 10 listesinde ilk kez yer aldı ve hemen 4 numaraya ulaştı. Ciddi sonuçları olabilir ve büyük güvenlik riskleri olarak değerlendirilmelidirler.
XML External Entity (XXE), yaygın olarak kullanılan XML ayrıştırıcılarının bir özelliği olan saldırı türüdür. Kötü niyetli kişinin herhangi bir uygulamanın XML veriline müdahale etmesine izin veren bir güvenlik açığıdır. Genellikle kötü niyetli kişinin uygulamanın sunucusunda ki dosyaları görüntülemesine ve erişebileceği herhangi bir backdoor veya harici sistemle etkileşime gitmesine izin verir. Bazen kötü niyetli kişi SSRF saldırıları gerçekleştirmek için XXE güvenlik açığını kullanabilir. Yine XXE kullanarak DOS saldırılarına neden olabilir ve ayrıca yerel/küresel hizmetlere de erişim sağlayabilir. XXE bağlantı noktası taraması etkinleştirerek uzaktan kod yürütülmesine neden olabilir.
XXE Nasıl Oluşur ?
XXE açıklarının bir çoğu, uygulamada gereksinim olmadığı halde var olan XML özelliklerinden dolayı meydana gelmektedir.
Bir takım uygulamalar tarayıcı ile sunucu arasında veri iletişimini gerçekleştirmek için XML biçimini kullanırlar. Bunu yapan uygulamalar, sunucudaki XML verilini işlemek için her zaman standart bir kütüphane veya platform kullanır. XXE güvenlik açığı ise XML'nin potansiyel olarak tehlikeli özellikler içerdiğinden ve standart ayrıştırıcılar bu özellikleri uygulama tarafından normalde kullanmasalar bile desteklendiğinden ortaya çıkar.
XXE Güvenlik Açığı İçin Alınacak Önlemler Nelerdir ?
Uygulamada kullanılan tüm XML işlemcileri ve kitaplıkların sürümlerini güncelleyebilirsiniz. SOAP'ı 1.2 veya daha yüksek bir sürüme güncellemeniz gerekmektedir.
XML ayrıştırıcılarında Documént Type Definition (DTD) işlemeyi devre dışı bırakabilirsiniz.
XML belgelerinde, dışarıdan girilen verileri önlemek adına bir beyaz liste sunucu taraflı giriş doğrulama veya filtreleme işlemi uygulayabilirsiniz.
SAST araçları, XXE'nin kaynak kodunda algılanmasına yardımcı olabilir, ancak manuel kod incelemesi birçok entegrasyona sahip büyük, karmaşık uygulamalarda en iyi alternatiftir.
JSON gibi daha az karmaşık veri biçimlerini kullanabilirsiniz.
XXE Güvenlik Açığı Kullanımı
XXE güvenlik açığını test etmek için ise Acunetix'in hazırladığı SecurityTweets - HTML5 test website for Acunetix Web Vulnerability Scanner sitesini kullanacağız. Öncelikle Burp Suite aracımızı çalıştırıyoruz ve siteye giriş yapıyoruz sonra sol üstte Login butonuna basıyoruz ve ardından açılan pop-up'da ise Forgot Pwd? butonuna basıyoruz.
Ardından gelen isteği de (Request) CTRL+R kombinasyonu ile Repeater'a yolluyoruz.
Şimdi ise XXE güvenlik zafiyetini kullanmak için bir payload yazıp tekrardan gönderme işlemini gerçekleştireceğiz. Payloadımızı yazdıktan sonra enjekte işlemimizi gerçekleştiriyoruz. Bizlerin yazmış olduğu payload doğrultusunda bir çıktı aldığımız için XXE güvenlik açığının bulunduğunu görmekteyiz.
XXE güvenlik açığı hakkında test işlemimizi Acunetix'in hazırladığı ortamda yapmış bulunmaktayız. Sizlerde XXE güvenlik açığını test etmek istiyorsanız HackTheBoxev0ops makinesini çözebilirsiniz. İlgili makinede kullanmanız gereken bir XXE güvenlik açığı bulunmaktadır