Sudah tau WordPress XML-RPC? Ngoprek ini seru banget. Seru, kalo sudah tau tentunya. Benda ini sudah ada lama sejak versi 3.5. Kalo yang belum tau apa itu, adalah Remote Procedure Call semacam rutin fungsi yang dapat dipanggil oleh aplikasi lain melalui protokol HTTP. Dengan kata lain misalnya buat mobile app untuk mengakses data di web tersebut, atau juga memungkinkan buat web aplikasi lain untuk memposting data ke web tersebut. Ini akan sangat berguna kalau Anda mau menghubungkan/interkoneksi data di website dengan sistem lain di luar WordPress. Show Karena ini WordPress, tentunya ini juga bisa di-extends. Memungkinkan untuk perubahan-perubahan yang kita inginkan. WordPress XML-RPC ini sudah di-enabled secara default. Tinggal akses ke http://url-wordpress/xmlrpc.php. Itu alamat url APInya. Untuk coba-coba menggunakan command line prompt bisa sebagai berikut. Perhatikan saya coba di sini dengan menggunakan server localhost. Perhatian: Apabila kamu dapat respon error, misalnya 401 Unauthorized, kemungkinan proteksi dari server hosting kamu. Hari ini kebetulan saya harus bermain-main dengan XML RPC di WordPress karena mau bikin fitur auto-post dari aplikasi yang dibikin dengan NodeJS. Untuk mengakses Seperti yang terlihat pada screenshot, menggunakan XML di command line itu gak enak dan bisa bikin pusing. Padahal itu masih XML yang sederhana. Gimana kalau udah banyak? :O Walaupun di command line kita bisa menggunakan “new line”, tapi tetap aja pusing. -_- Postman to the rescueSetelah melihat sekilas pola dengan menggunakan XMLRPC Brutforce Tools yang menargetkan WordPress yang ditulis dengan Python 3. Dalam konteks xmlrpc brute forcing, tools ini lebih cepat daripada Hydra dan WpScan. Bahkan up to 1000 kata sandi per detik. Ok kali ini saya akan membahas mengenai web security kembali yang berfokus ke salah satu CMS paling populer saat ini yaitu WordPress. Salah satu metode penyerangan yang sangat populer pada CMS yang sangat populer ini salah staunya adalah Bruteforce Attack. Yuk langsung ke tutorial : Download scriptnya disini : https://github.com/kavishgr/xmlrpc-bruteforcer Cara menggunakanya :
Kalau muncul pesan seperti ini “xml.etree.ElementTree.ParseError:” hapus www atau https. Demo : Pada kesempatan ini saya akan sedikit berbagi mengenai penerapan web service API Odoo 11 (OpenERP) menggunakan Python. Python yang akan saya gunakan pada tutorial kali ini menggunakan Python 3. Banyak fitur dan data pada Odoo yang dapat diakses dari eksternal sistem Odoo. Hal ini dimungkinkan untuk memudahkan pengembang (developer) untuk melakukan pengintegrasian Odoo dengan beragam sistem yang ada. Bagian dari model refrensi API pada Odoo mudah didapatkan dengan menggunakan fungsi XML-RPC dan dapat diakses menggunakan beragam bahasa. Adapun berama bahasa yang dapat digunakan diantaranya : Python, Ruby, PHP, dan Java. Sebagai awalan, yang perlu kita persiapkan adalah Odoo 11 dan environment python 3 yang telah terinstall di PC/Laptop kita. Kemudian pastikan bahwa Modul Sales Management telah terinstall dengan baik pada Odoo kita. Tujuan : Kustomisasi Sales Order pada Odoo 11
A. Loggin inPada tahap ini, kita akan perlu untuk melakukan set up untuk keperluan authentifikasi identitas kita untuk masuk kedalam sistem Odoo. Untuk diketahui, dalam Odoo, Sales Order (SO) merupakan 1 dari 329 total table yang ada. Langkah 1 – Insiasi Masuklah kedalam directory Odoo, kemudian jalankan environment Python. Alternatif masuk kedalam environment python bisa juga mengunakan CMD bawaan python secara langsung atau masuk ke directory python dalam file Odoo 11 “C:\Program Files (x86)\Odoo 11.0\python” pada CMD kemudia jalankan “python” kemudian enter.
Langkah 2 – Import XMLRPC & Autentifikasi Pada banyak contoh yang ada, selalu menggunakan “import xmlrpclib”. Namun module “xmlrpclib” hanya dimiliki oleh python 2, sedangkan untuk python 3 perlu mendapatkan penyesuaian. Lakukan “import xmlrpc.client” dan “from xmlrpc.server import SimpleXMLRPCServer” seperti contoh diatas Setelah import, kemudian lakukan aktifasi server dengan menjalankan url “; dan dilanjutkan dengan authentifikasi pada sistem odoo untuk Logging in. Ketika “uid” untuk memastikan apakah bernilai satu (1). satu menunjukan bahwa kita telah berhasil masuk kedalam sistem. B. Create Sales OrderDi atas merupakan tampilan Sales Order yang saya miliki. Terdapat 9 Sales Order.Langkah 3 – cek jumlah Sales Order awal untuk mengecek jumlah sales order yang kita miliki, kita dapat menggunakan fungsi search_count. Langkah 4 – Create Sales Order pada bagian ini, saya menginisiasi sebuah SO baru dengan fungsi “create” dengan inputan partner_id = 10 (“partner_id” merupakan id identitas dari customer yang membeli produk kita) sedangkan “pricelist_id” merupakan id identitas untuk jenis mata uang yang digunakan 1, menunjukan USD. Seperti pada gambar kita telah berhasil membuat id baru dengan id “10” dengan nama SO010. Lakukan lagi pengecekan jumlah SO, maka jumlah SO bisa dipastikan akan bertambah. C. Read Sales Order
Untuk membaca Sales Order (SO) kita bisa menggunakan fungsi “Read”. Pada contoh di atas saya melakukan pembacaan SO dengan “id = 1″. D. Update Sales OrderPada tutorial ini kita akan melakukan perubahan data pada SO010 bagian state : draft menjadi state : sale. Untuk melakukan perubahan data pada SO kita dapat menggunakan fungsi “write”, seperti contoh diatas. Kemudia cek menggunaka fungsi “read” untuk mengecek perubahan yang terjadi. E. Delete Sales OrderUntuk mengawali fungsi ini, kita perlu mengetahui list id Sales Order yang kita miliki. Kita memiliki list id SO [10,9,8,7,6,5,4,3,2,1]. Kemudian dalam case ini kita akan menghapus SO ber id “6”
Kita melakukan fungsi hapus dengan metode “unlink”. Jika berhasil, maka kita akan mendapatkan balikan “TRUE” seperti contoh di atas. Untuk memastikan bahwa id 6 telah berhasil di hapus, lakukan pengecekan dengan memanggil daftar SO. Id 6 telah hilang dari list id Sales Order yang kita miliki. Sekian tutorial penerapan Web Service Python 3 untuk penerapan kustemisasi (CREATE, READ, UPDATE dan DELETE) pada Sales Order Odoo 11. Semoga bermanfaat. |