Pendahuluan
Bagi banyak pengguna WordPress atau CMS lama, nama XML-RPC mungkin pernah terdengar.
XML-RPC adalah sebuah protokol komunikasi yang memungkinkan aplikasi berbicara dengan website menggunakan bahasa XML lewat HTTP.
Awalnya, fitur ini dibuat untuk memudahkan integrasi antar aplikasi di era sebelum REST API populer.
Namun, seiring waktu, XML-RPC justru menjadi sorotan dunia keamanan. Banyak kasus peretasan, brute force, bahkan serangan DDoS yang melibatkan fitur ini.
Lalu, apakah XML-RPC masih berguna, atau justru lebih banyak bahayanya?
Kegunaan XML-RPC
Sebelum membahas sisi negatifnya, mari lihat sisi positif XML-RPC:
-
Remote publishing: kita bisa menulis artikel di aplikasi pihak ketiga (misalnya aplikasi mobile) lalu langsung menerbitkannya ke website.
-
Integrasi API sederhana: dulu XML-RPC dipakai untuk menghubungkan layanan eksternal ke website tanpa konfigurasi rumit.
-
Dukungan aplikasi mobile: WordPress app di Android/iOS menggunakan XML-RPC agar user bisa update blog dari ponsel.
-
Pingback/Trackback: membantu website saling memberi tahu jika ada link antar artikel.
Di zamannya, fitur ini sangat mempermudah. Tapi dunia keamanan tidak diam di tempat, dan masalah pun mulai muncul.
Masalah Keamanan pada XML-RPC
Sayangnya, XML-RPC punya sisi gelap. Beberapa celah yang sering dimanfaatkan hacker antara lain:
-
Brute Force Attacks
Melalui XML-RPC, penyerang bisa mencoba ribuan kombinasi username dan password hanya dengan satu permintaansystem.multicall
. Efisien untuk hacker, berbahaya untuk website. -
Amplification Attacks
Fiturpingback
bisa dimanipulasi agar website mengirimkan request ke situs lain. Jika ribuan website disalahgunakan, bisa terjadi serangan DDoS besar. -
SSRF (Server-Side Request Forgery)
Dengan memanfaatkanpingback.ping
, hacker bisa menyuruh server website mengakses alamat yang mereka tentukan, misalnya layanan internal atau metadata cloud. -
Information Disclosure
Respon error dari XML-RPC kadang membocorkan detail server atau software yang dipakai, yang bisa membantu penyerang.
Contoh Eksploitasi XML-RPC
Beberapa contoh serangan nyata yang pernah terjadi:
-
Brute Force: Penyerang mengirim permintaan XML-RPC berisi ratusan password dalam sekali request. Server akan memproses semuanya tanpa disadari.
-
Pingback DDoS: Ribuan situs WordPress dipaksa melakukan pingback ke satu target, membuat server target tumbang.
-
SSRF: Penyerang memasukkan alamat
http://127.0.0.1:8080/
atauhttp://169.254.169.254/
ke dalam parameter XML-RPC, lalu server korban tanpa sadar mengakses layanan internal.
Dampak Serangan
Akibat serangan melalui XML-RPC bisa cukup serius:
-
Server overload → Website jadi lambat atau tidak bisa diakses.
-
Akses internal → Penyerang bisa mengintip data sensitif di jaringan internal.
-
Privilege escalation → Jika digabung dengan bug lain, bisa menyebabkan peretasan penuh.
-
Reputasi buruk → Website bisa masuk daftar hitam karena dianggap jadi bagian botnet.
Mitigasi dan Best Practice
Untungnya, ada beberapa langkah pencegahan yang bisa dilakukan:
-
Nonaktifkan XML-RPC jika memang tidak dipakai. Banyak plugin WordPress bisa melakukan ini.
-
Gunakan REST API sebagai alternatif modern yang lebih aman dan fleksibel.
-
Batasi akses ke file
xmlrpc.php
hanya untuk IP tertentu jika masih perlu digunakan. -
Gunakan WAF (Web Application Firewall) untuk mendeteksi pola serangan XML-RPC.
-
Pantau log server untuk melihat apakah ada request mencurigakan ke
xmlrpc.php
.
Kesimpulan
XML-RPC memang lahir sebagai fitur berguna yang mempermudah komunikasi antar aplikasi dan website.
Namun, di era sekarang, fungsinya sudah banyak digantikan oleh REST API yang lebih aman.
Alih-alih membantu, XML-RPC sering justru menjadi celah yang dimanfaatkan hacker.
Jadi, jika tidak benar-benar dibutuhkan, sebaiknya nonaktifkan XML-RPC demi keamanan website.