XML External Entity (XXE)

Saya adalah lulusan SMK yang punya hobi dengan dunia Jurnalistik, Teknologi, Travel dan saya tulis semuanya di blog ini.

halo semuanya selamat datang di blogpong.com, kali ini saya ingin membahas sedikit tutorial XML EXternal Entity atau yang lebih dikenal dengan XXE injection.

Banyak tutorial yang membahas tentang XXE Injection namun masih sedikit dalam bahasa indonesia kebanyakan bahasa inggris, dan kali ini saya akan sedikit membahasnya.

Apa Itu XML External Entity (XXE)

Serangan XML External Entity adalah jenis serangan terhadap aplikasi yang mem-parsing input XML. Serangan ini terjadi ketika input XML yang berisi referensi ke entitas eksternal diproses oleh parser XML yang dikonfigurasi dengan lemah. Serangan ini dapat menyebabkan pengungkapan data rahasia, penolakan layanan, pemalsuan permintaan sisi server, pemindaian port dari perspektif mesin tempat parser berada, dan dampak sistem lainnya.
Sumber Dari OWASP (Di terjemahkan Dari Bahasa Inggris)

Bagaiaman XML External Entity Terjadi

Beberapa aplikasi menggunakan format XML untuk mengirimkan data antara browser dan server. Aplikasi yang melakukan ini hampir selalu menggunakan pustaka standar atau platform API untuk memproses data XML di server. Kerentanan XXE muncul karena spesifikasi XML berisi berbagai fitur yang berpotensi berbahaya, dan parser standar mendukung fitur ini bahkan jika mereka biasanya tidak digunakan oleh aplikasi.

Entitas eksternal XML adalah jenis entitas XML khusus yang nilainya ditentukan diambil dari luar DTD yang mendeklarasikannya. Entitas eksternal sangat menarik dari sudut pandang keamanan karena mereka memungkinkan suatu entitas untuk didefinisikan berdasarkan pada isi path file atau URL.
Sumber : Portswigger

Apa saja jenis serangan XXE

Ada berbagai jenis serangan XXE :

  • Memanfaatkan XXE untuk mengambil file, di mana entitas eksternal didefinisikan berisi konten file, dan dikembalikan sebagai respons aplikasi.
  • Mengeksploitasi XXE untuk melakukan serangan SSRF, di mana entitas eksternal ditentukan berdasarkan URL ke sistem back-end.
  • Mengeksploitasi buta XXE mengeluarkan data out-of-band, di mana data sensitif ditransmisikan dari server aplikasi ke sistem yang dikendalikan oleh penyerang.
  • Memanfaatkan blind XXE untuk mengambil data melalui pesan kesalahan, di mana penyerang dapat memicu pesan kesalahan penguraian yang berisi data sensitif.

Berbagai Macam Exploit XXE (RCE,XXS,LFI etc)

Xxe bisa juga digabungkan dengan berbagai macam exploit lainnya seperti berikut ini :

Contoh Payload / Tutorial XXE Injection

Sekarang ke pembahasan paling utama yaitu bagaimana exploitasi bisa praktekan (sebelumnya mohon maaf jika tidak ada demo/live target), silakan simak beberapa contoh yang saya ambil dari beberapa situs luar negeri.

XXE ini biasa terdapat toko online yang ada fitur bulk upload product seperti shoppe,tokopedia dan lain lain (bisa kalian coba sendiri)

dalam mengupload bulk produck biasanya akan di berikan template untuk kita isi disana kita bisa memasukan sedikit payload xxe, sebagai contoh kalian bisa baca Write-Up Berikut : XXE at Bol.com

Dan berikut adalah contoh Payload XXE :

<?xml version="1.0" encoding="ISO-8859-1"?>
 <!DOCTYPE foo [ <!ELEMENT foo ANY >
   <!ENTITY xxe SYSTEM "expect://id" >]>
    <creds>
       <user>&xxe;</user>
       <pass>mypass</pass>
    </creds>

Dari kode XML di atas kita melihat !ENTITY xxe SYSTEM “expect://id” ,ini adalah kode xxe to rce yang disisipkan untuk melihat ID, kita bisa menggunakan perintah lainnya sepert etc/passwd, ls, cat dan lain lain.

Maka input yang keluar dari hasil xxe ini adalah menampilkan ID dari server,

<!ELEMENT foo ANY >
   <!ENTITY xxe SYSTEM "file:///etc/passwd" >]><foo>&xxe;</foo>

untuk local file inclusion kita gunakan perintah/kode di atas file://[LFI].

mohon maaf jika kurang paham dengan tutorial saya ini, karena saya juga masih belajar tentang xxe ini, biasanya bisa digunakan jika ada fitut upload xml atau ada fitur seperti registrasi dan data login tersimpan dalam bentuk xml kita juga bisa menggunakan tehnik ini.

Sekian tutorial saya dalam membahas tentang Xml external entity (XML) part 1, selanjutnya saya akan buat part 2 dengan demo dari situs / live target.

Video Penjelasan XXE Lebih lengkap (pastikan ngerti Bahasa Inggris)

PwnFunction (Youtube Channel)

Sumber data artikel ini :

0 Shares

Leave a Reply

Your email address will not be published. Required fields are marked *