XML External Entity (XXE) Injection
XML external entity injection (XXE) merupakan kerentanan keamanan aplikasi web yang memungkinkan penyerang mengganggu pemrosesan data XML oleh aplikasi.
Sering kali, penyerang dapat melihat file pada filesystem aplikasi dan berinteraksi dengan sistem backend atau eksternal yang dapat diakses oleh aplikasi itu sendiri.
Dalam beberapa situasi, penyerang dapat meningkatkan serangan XXE untuk membahayakan server yang mendasarinya atau infrastruktur backend lainnya, dengan memanfaatkan kerentanan XXE untuk melakukan serangan server-side request forgery (SSRF).
Jenis-jenis XXE:
Exploiting XXE to retrieve files Dimana external entity didefinisikan yang berisi konten file dan dikembalikan dalam response aplikasi
Exploiting XXE to perform SSRF attacks Dimana external entity didefinisikan berdasarkan URL ke sistem backend
Exploiting blind XXE exfiltrate data out-of-band Dimana data sensitif dikirim dari server aplikasi ke sistem yang dikendalikan oleh penyerang
Exploiting blind XXE to retrieve data via error messages Dimana penyerang dapat memicu error messages penguraian yang berisi data sensitif
Cara mengatasi kerentanan XXE?
Hampir semua kerentanan XXE muncul karena library parsing XML aplikasi mendukung fitur XML yang berpotensi berbahaya yang tidak dibutuhkan atau tidak ingin digunakan oleh aplikasi. Cara termudah dan paling efektif untuk mencegah serangan XXE yaitu dengan menonaktifkan fitur tersebut.
Secara umum, menonaktifkan resolusi exernal entities dan menonaktifkan dukungan untuk XInclude sudah cukup. Hal ini biasanya dapat dilakukan melalui opsi konfigurasi atau dengan mengganti perilaku default secara terprogram. Lihat dokumentasi untuk library parsing XML atau API untuk detail cara menonaktifkan kapabilitas yang tidak diperlukan.
Last updated