Celah Keamanan di Themegrill Demo Importer Plugin WordPress

By | January 6, 2019

Bagaimana seandainya segala konten di blog Sahabat tiba-tiba hilang? Sahabat tentu akan panik dan kecewa, bukan? Sayangnya, hal itu dapat saja terjadi akibat pemakaian plugin WordPress yang tak aman.

Artikel kami kali ini akan membahas sebuah plugin yang sempat merancang geger pengguna WordPress di seluruh dunia. Plugin bernama ThemeGrill Demo Importer ternyata mempunyai celah keamanan yang mengakibatkan konten blog terhapus dan mengembalikan blog ke pengaturan default.

Celah Keamanan ThemeGrill Demo Importer

Ketika celah keamanan di Themegrill Demo Importer ditemukan, hampir segala pengguna WordPress pasti terkejut.

Celah Keamanan di Themegrill Demo Importer Plugin WordPress

Plugin ini mempunyai lebih dari 200.000 pengguna aktif dan memperoleh review sempurna, bintang 5. Singkatnya, plugin ini masuk pada diantara plugin WordPress terbaik.

Cara kerja Themegrill Demo Importer ini pun lumayan sederhana. Sahabat dapat mengerjakan import segala aset demo ke blog Sahabat dengan sekali klik. Jadi, setelah memasang diantara tema ThemeGrill, Sahabat tak perlu repot mengerjakan kustomisasi tampilan dari nol. 

Sayangnya, setelah versi 1.3.4 dan sebelum versi 1.6.1, ada celah keamanan serius. Plugin ini memperbolehkan user yang tak terautentikasi bagi menghapus segala database dan mengembalikan blog WordPress Sahabat ke pengaturan default. 

Hal ini dapat terjadi karena segala pengguna menjadi administrator secara otomatis. 

Pun tanpa adanya user admin di database, segala data di blog masih dapat dihapus dan dikembalikan ke pengaturan default.

Masalah ini telah ada dalam kurun waktu hampir 3 tahun (sejak versi 1.3.4). Karenanya, akibat yang ditimbulkan pasti lumayan besar. 

Meskipun belum ada review negatif di direktori WordPress mereka, jumlah pengguna plugin ini seketika anjlok ke angka 100.000 pengguna per 18 Februari 2020. Penurunan pengguna hingga separuhnya terjadi hanya pada waktu tiga hari.

Celah Keamanan di Themegrill Demo Importer Plugin WordPress

Bagaimana Masalah Ini Dapat Terjadi?

Plugin Themegrill Demo Importer memang digunakan berdampingan dengan sebuah tema dari ThemeGrill. 

Jadi, setelah dipasang dan diaktifkan, plugin akan mengandung file /includes/class-demo-importer.php yang akan mengarahkan reset_wizard_actions ke admin_init.

Inilah sumber masalahnya. admin_init ternyata tak hanya berjalan di ranah admin saja, tetapi pun dapat dipanggil oleh /wp-admin/admin-ajax.php yang tak mengharuskan autentikasi.

Berikut ini ialah script plugin tersebut:

public function reset_wizard_actions() {

global $wpdb, $current_user;

if ( ! empty( $_GET['do_reset_wordpress'] ) ) {

///

if ( 'admin' != $current_user->user_login ) {

$user = get_user_by( 'login', 'admin' );

}

if ( empty( $user->user_level ) || $user->user_level < 10 ) {

$user = $current_user;

}

// Drop tables.

$drop_tables = $wpdb->get_col( sprintf( SHOW TABLES LIKE '%s%%', str_replace( '_', '_', $wpdb->prefix ) ) );

foreach ( $drop_tables as $table ) {

$wpdb->query( DROP TABLE IF EXISTS $table );

}

// Installs the site.

$result = wp_install( $blogname, $user->user_login, $user->user_email, $blog_public );

// Updates the user password with a old one.

$wpdb->update(

$wpdb->users,

array(

'user_pass' => $user->user_pass,

'user_activation_key' => '',

),

array( 'ID' => $result['user_id'] )

);

// Set up the Password change nag.

$default_password_nag = get_user_option( 'default_password_nag', $result['user_id'] );

if ( $default_password_nag ) {

update_user_option( $result['user_id'], 'default_password_nag', false, true );

}

///

// Update the cookies.

wp_clear_auth_cookie();

wp_set_auth_cookie( $result['user_id'] );

// Redirect to demo importer page to display reset success notice.

wp_safe_redirect( admin_url( 'themes.php?page=demo-importerbrowse=allreset=true' ) );

exit();

}

}

Script di atas menunjukkan tak adanya permintaan autentikasi. Hanya parameter do_reset_wordpress saja yang mesti ada di URL di segala halaman WordPress yang membutuhkan hak admin, termasuk /wp-admin/admin-ajax.php.

Artinya, seandainya pengguna tak login, plugin akan mengembalikan user admin dari WordPress. Lalu, menaruh segala tabel WordPress yang dimulai prefix database tertentu. 

Setelah segala tabel data ditaruh, karenanya WordPress akan mengandung database dengan data dan pengaturan default. Setelah itu, password user admin akan dikembalikan ke password yang terakhir digunakan.

Intinya, celah keamanan yang terdapat ialah siapapun yang login ke blog Sahabat dapat menjadi user admin secara otomatis dan dapat menghapus database serta konten blog dengan gampang. 

Hal ini tentu adalah celah keamanan serius yang tak seharusnya terjadi.  

Namun, menurut Webarx, dalam kurun waktu tak ada pengguna admin di database, table pengguna akan tetap kosong. Jadi tak akan mengarahkan pengguna bagi login otomatis.  

Keamanan Laman itu Jelas Urgen!

Telah banyak waktu dan tenaga yang Sahabat curahkan bagi membangun blog. Mulai dari merancang konten, menata tampilan, promosi, hingga upaya optimasi lain. 

Namun, akibat satu saja celah keamanan yang tak disadari, blog Sahabat dapat yang menjadi korbannya.

Sayangnya, ada banyak cara yang dilakukan oleh peretas bagi dapat mengganggu keamanan sebuah blog. Mulai dari dengan menyebar malware hingga mengerjakan phising.

Apapun caranya, dapat dipastikan Sahabat lah yang dirugikan.

Apa yang Perlu Sahabat Lakukan?

Selalu waspada itu urgen. Karenanya dari itu, Sahabat perlu terus update informasi mengenai celah keamanan di blog. Sahabat dapat memperoleh informasi tersebut di WPScan Vulnerabilities Database.

Celah Keamanan di Themegrill Demo Importer Plugin WordPress

Tak hanya daftar plugin dan tema apa saja yang sedang bermasalah, blog tersebut pun memberikan update celah keamanan mana saja yang telah berhasil diatasi. 

Bagi mempermudah, Sahabat dapat saja mengerjakan registrasi ke layanan tersebut. Karena, Sahabat dapat memperoleh update seketika dari email. Tak hanya di update harian saja, update instan di dikala bug ditemukan pun dapat Sahabat terima. 

Selain langkah di atas, inilah beberapa hal preventif yang perlu Sahabat lakukan bagi menjaga blog Sahabat:

1. Selalu Lakukan Update

WordPress ialah platform dengan tingkat keamanan tinggi dan sering merilis update. Namun, langkah peretas tak pernah berhenti bagi mencari celah.

Oleh karena itu, Sahabat mesti rajin mengerjakan update WordPress, bagus core update, pembaruan tema atau plugin. Sahabat dapat melakukannya secara otomatis dari fitur dashboard atau dapat menggunakan cara update WordPress manual.  

Untuk pengguna Niagahoster, langkah update WordPress dapat dilakukan via Member Area dengan lebih gampang.

Di tab WordPress Management, Sahabat akan melihat ikon update seandainya masih menggunakan versi WordPress lawas bagi blog Sahabat. Lumayan klik di ikon tersebut dan lakukan konfirmasi, karenanya proses upgrade akan berlangsung otomatis.

Bagi lebih lengkapnya, silakan baca panduan berikut.

2. Gunakan Tema dan Plugin Resmi

Banyak tema dan plugin di direktori WordPress yang dapat Sahabat gunakan secara cuma-cuma. 

Akan tetapi, Sahabat pun dapat menggunakan tema dan plugin dari pihak ketiga. Dalam rentang waktu berasal dari pengembang resmi, kualitasnya dapat dipercaya ditambah dengan adanya layanan support.

Namun, tak jarang pengguna WordPress menggunakan tema dan plugin bukan dari blog resmi. Malahan, ada yang nekat memasang nulled theme dan plugin. Hal ini tentu berbahaya karena Sahabat tak tahu script apa yang ditanamkan di dalamnya.

3. Jangan Gunakan Username Admin

Teknik peretasan yang sangat umum ialah brute-force attack alias tebak-tebak buah manggis. Seandainya Sahabat masih menggunakan username “admin”, tak perlu lama bagi mengetahui username WordPress dan meretas blog Sahabat. 

Jadi, mengganti username default ialah hal wajib yang perlu dilakukan. Sahabat dapat lakukan hal tersebut dengan menginstall plugin ataupun menggunakan phpMyAdmin. Bagi panduan lengkapnya, silakan baca → Cara mengganti username WordPress.

Celah Keamanan di Themegrill Demo Importer Plugin WordPress

Seandainya menggunakan plugin, pasang dan aktifkan Username Changer. Lalu, masuk ke fitur Users -> All Users -> Modifikasi -> Change Username

Seandainya menggunakan phpMyAdmin, akseslah control panel Hosting Sahabat. Pilih fitur phpMyAdmin -> wp_users. Pilih user Sahabat, kemudian klik menej bagi mengerjakan perubahan.

4. Ganti Password secara Berkala

Seperti halnya username, password yang Sahabat gunakan mesti unik. Jangan lagi gunakan 1234, 1998, atau nama Sahabat. Karena, gampang ditebak. 

Selain itu, gantilah password Sahabat secara berkala. Hal ini bagi mencegah orang lain yang terlanjur mengetahui password tersebut menggunakannya bagi hal tak bertanggung jawab. 

WordPress mempermudah Sahabat mengubah password via fitur profile di dashboard WordPress. Lumayan mengerjakan generate password dan mengisikan password yang Sahabat inginkan, lalu save. Berikutnya, lumayan update profile.

5. Ubah Default Tabel Prefix

Belajar dari apa yang terjadi di Themegrill Demo Importer, Sahabat jelas perlu lindungi akses database Sahabat. Caranya, ubah default tabel prefix database WordPress Sahabat. 

Seperti Sahabat tahu, default table prefix ialah wp_. Peretas dapat menggunakan script SQL bagi membobol blog. Namun, seandainya tabel prefix Sahabat telah berubah menjadi wp_123_a misalnya, upaya peretasan akan lebih sulit. 

Bagi melakukannya, Sahabat dapat akses ke File Manager. Lalu, menej file wp-config.php dan simpan perubahan tersebut. Berikutnya, ubah database default via phpMyAdmin. 

6. Aktifkan Firewall

Firewall ialah proteksi keamanan terkait transfer data yang menggunakan jaringan internet. Firewall bertugas mengatur lalu lintas data. Seluruh data yang aman dapat lewat, data yang mencurigakan akan diblokir.

Mengaktifkan firewall benar-benar disarankan. Tujuannya, bagi perlindungan data dari peretas, pemblokiran konten tertentu hingga monitoring bandwidth. 

7. Pasang Plugin Keamanan

Perlindungan blog WordPress Sahabat kurang komplit tanpa adanya plugin security. Tentu mesti dipastikan plugin tersebut dari pengembang yang terpercaya seperti Wordfence, SecuPress dan iThemes Security

Celah Keamanan di Themegrill Demo Importer Plugin WordPress

Baca pun: 10+ Plugin Security WordPress Terbaik dan Gratis

Alasan pemakaian plugin keamanan ialah mempermudah Sahabat pada menemukan ancaman di blog Sahabat dan memblokirnya. Beberapa plugin mampu mendeteksi adanya bug dari plugin dan tema yang Sahabat gunakan. 

Selain itu, Sahabat akan memperoleh rekomendasi keamanan yang belum optimal. Misalnya password yang lemah, URL login default, hingga berapa kali salah login dapat dilakukan. 

Jaga Selalu Laman Sahabat

Keamanan blog mesti selalu menjadi prioritas dan tak dapat ditawar lagi.  

Kami baru saja membahas bagaimana celah keamanan sebuah plugin dapat menimbulkan akibat yang lumayan besar dan merugikan. Padahal, plugin seharusnya menolong Sahabat mengelola blog dengan lebih gampang.

Pembelajaran yang dapat kita petik ialah selalu lakukan yang terbaik bagi melindungi blog dan segala aset konten Sahabat. Selalu gunakan tema dan plugin yang mempunyai keamanan tinggi dan periksa performa blog secara berkala. 

Celah Keamanan di Themegrill Demo Importer Plugin WordPress

Niagahoster blog selalu mengupdate tips dan trik bagi menjaga keamanan blog WordPress Sahabat. Rangkumannya dapat Sahabat baca di ebook 25 Langkah Ampuh Mengamankan Laman yang dapat Sahabat unduh secara cuma-cuma

Jadi, jaga selalu blog Sahabat dan Stay Secure Online


Sumber https://niagahoster.co.id/