WordPress SQL Injection: Alat dan Teknik untuk Mencegah Serangan
Diterbitkan: 2020-09-24
Injeksi SQL dulunya merupakan teknik peretasan yang banyak digunakan untuk memanipulasi database WordPress. Saat ini, Cross Site Scripting (XSS) populer dan telah menjadi metode nomor satu untuk meretas situs WordPress.
Dalam panduan ini, saya akan membahas dasar-dasar WordPress SQL Injection dan bagaimana cara menghilangkannya. Di bagian selanjutnya, saya akan membahas Cross Site Scripting. Mari kita mulai!
- Apa itu Injeksi SQL?
- Poin Masuk untuk Serangan Injeksi SQL
- Mengapa Serangan Injeksi SQL Umum?
- Bagaimana Injeksi SQL Bekerja?
- Cara Mencegah Injeksi SQL di WordPress
- Tip #1 Pindai Kerentanan Injeksi SQL
- Tip #2 Perbarui, Perbarui, Perbarui!
- Tip#3 Tema & Plugin WordPress
- Tip#4 Gunakan Plugin Formulir Tepercaya
- Tip#5 Sembunyikan Versi WordPress
- Tip#6 Ubah Awalan Basis Data
- Tip#7 Selalu Ambil Cadangan
Tip#8 Simpan Log - Tip#9 Gunakan Firewall
- Tip#10 Hapus Fungsi Database yang Tidak Diperlukan
- Pertanyaan yang Sering Ditanyakan
- Kata-kata Terakhir!
Apa itu Injeksi SQL?
SQL Injection adalah hasil dari celah di backend coding. Penyerang dapat dengan mudah menyalahgunakan bidang input dengan memasukkan kode berbahaya yang dapat menjalankan perintah SQL dan dapat membuat, mengambil, memperbarui, dan bahkan menghapus data dalam database.
SQL adalah kependekan dari Structured Query Language — bahasa yang paling banyak digunakan untuk database dalam pengembangan web. Berikut adalah beberapa mesin database paling populer yang menggunakan SQL.
Database Menggunakan SQL
Kami memiliki banyak perangkat lunak database yang tersedia di pasar. Yang populer antara lain:
- Peramal
- MySQL
- SQL Server
- PostgreSQL
- MongoDB, dll.
Seperti yang Anda lihat, MySQL adalah yang kedua dalam daftar. WordPress yang menggunakan SQL saja telah berkontribusi lebih dari 35% dari WWW dan telah menjadi target paling menarik bagi para penyerang.

Poin Masuk untuk Serangan Injeksi SQL
Semua kolom input dianggap sebagai titik masuk paling umum untuk serangan SQL Injection. Dalam istilah Awam, kita dapat mengatakan:
- Formulir pendaftaran
- Formulir masuk
- Formulir kontak
- Pencarian situs
- Bidang umpan balik
- Keranjang belanja
Mengapa Serangan Injeksi SQL Umum?
Mungkin ada beberapa alasan untuk ini, tetapi, inilah yang paling umum yang saya ingat saat menulis panduan ini.
- Sebagian besar database situs web didasarkan pada SQL
- WordPress – CMS yang paling banyak digunakan menggunakan SQL untuk database
- Hampir semua situs web memiliki kolom input untuk mengumpulkan informasi dari pengunjungnya
- Semua situs web memiliki setidaknya satu dari titik masuk Injeksi SQL
- Alat pemindaian SQL Injection sudah tersedia secara online
- Itu tidak memerlukan kerumitan teknis untuk dieksploitasi
Bagaimana Injeksi SQL Bekerja?
Misalnya, Anda memiliki formulir hubungi kami di mana seseorang perlu memasukkan nomor telepon. Harus ada kriteria tertentu seperti seseorang harus memasukkan angka terbatas hanya dengan format yang tepat.
Sebagian besar pengembang yang tidak mengetahui validasi input mungkin menetapkan bidang ini sebagai teks biasa yang berarti seseorang dapat memasukkan string apa pun yang dapat menjadi kode berbahaya juga. Dengan menggunakan beberapa kueri SQL yang diubah, seseorang dapat meminta nama pengguna dan kata sandi admin.
Contoh Injeksi SQL WordPress
Anda dapat menemukan banyak kerentanan Injeksi SQL dengan pencarian Google sederhana. Tapi, hari ini, izinkan saya membagikan contoh kehidupan nyata: orang hanya perlu melihat ke industri game. Seperti yang terjadi, banyak serangan injeksi SQL fokus pada video game, salah satu industri terbesar dan paling menguntungkan.
Selain itu, di masa lalu peretas juga menyerang situs web individu baik blog, toko eCommerce, dan beberapa bisnis terbesar.
Itu terjadi untuk waktu yang lama, contoh lain dari kerentanan di WordPress dilaporkan kembali pada September 2017. WordPress Core tidak secara langsung terpengaruh oleh kerentanan ini, namun, sebuah patch (WordPress 4.8.3) dirilis untuk mencegahnya mempengaruhi plugin dan tema WordPress .
Anthony Ferrara, orang di balik kerentanan di atas, menulis panduan ekstensif tentang WPBD SQL Injection, bagaimana hal itu dapat memengaruhi situs WordPress dan tindakan pencegahan untuk setiap pengguna WordPress.
Tidak ada cara yang sangat mudah untuk mengamankan situs WordPress. Faktanya, bahkan plugin keamanan WordPress telah terpengaruh di masa lalu. Pada tahun 2014, salah satu plugin keamanan paling populer menunjukkan DUA kerentanan yang memungkinkan injeksi SQL.
Cara Mencegah Injeksi SQL di WordPress
Seperti yang dikatakan sebelumnya, tidak ada cara untuk sepenuhnya menghilangkan upaya peretasan. Namun, seseorang dapat meminimalkan risiko diretas. Berikut adalah beberapa praktik paling umum yang dapat membantu mencegah serangan semacam itu.
Mencari kinerja dan keamanan yang lebih baik?
Migrasikan situs web WooCommerce Anda ke Cloudways tanpa biaya.
Tip #1 Pindai Kerentanan Injeksi SQL
Anda dapat menemukan sejumlah alat online untuk memindai situs WordPress Anda. Saya telah memilih peringkat teratas di mana yang perlu Anda lakukan hanyalah memasukkan URL situs WordPress dan mulai memindai kerentanan yang ditemukan.
- Pemindaian Keamanan WordPress – Memeriksa kerentanan dasar di situs WordPress Anda. Pemindaian lanjutan tersedia dengan peningkatan premium.
- Sucuri SiteCheck – Situs WordPress Anda dapat diperiksa untuk malware yang diketahui, status daftar hitam, kesalahan, dan jika situs Anda kedaluwarsa.
- WPScan – Pemindai kerentanan yang dihosting sendiri yang gratis untuk penggunaan pribadi. Anda juga bisa mendapatkan lisensi berbayar untuk penggunaan komersial.
Dengan menjalankan laporan pemindaian, Anda dapat melihat dengan tepat area mana yang perlu difokuskan untuk meningkatkan keamanan WordPress.
Tip #2 Perbarui, Perbarui, Perbarui!
Yang paling penting untuk setiap pengguna WordPress! Tetap perbarui semuanya termasuk inti WordPress, tema, dan plugin.
Inti WordPress
Menurut statistik WordPress resmi, hanya 29,3% situs WordPress yang menggunakan versi terbaru (5.5.x). Semua versi sebelumnya dapat rentan dan dapat mengakibatkan diretas. Dalam contoh kerentanan SQL Injection di atas, Anda lihat, semua situs yang berada di bawah versi terbaru rentan terhadap kerentanan yang ditemukan. Jika situs Anda diretas, saya harap Anda tahu siapa yang akan bertanggung jawab!


Versi PHP
PHP, backend WordPress telah banyak ditingkatkan selama beberapa tahun terakhir. Banyak tambalan dan perubahan berorientasi kinerja telah dibuat. Tapi tetap saja, lebih dari 23% pengguna WordPress menggunakan PHP 7.2 yang bisa menjadi salah satu faktor SQL Injection di WordPress. Versi terbaru dari PHP adalah 7.4
Catatan: Jika hosting WordPress Anda tidak mendukung PHP versi terbaru, saatnya untuk segera beralih host ke hosting WordPress terkelola yang mendukung PHP versi terbaru seperti Cloudways.

Tip#3 Tema & Plugin WordPress
Sebagian besar kerentanan termasuk SQL Injection di WordPress ditemukan di plugin dan tema, bukan di inti WordPress. Awasi pembaruan, perbaikan, dan adaptasi yang sesuai.
Jika tema dan plugin tidak diperbarui secara berkala, itu bisa menjadi tanda tanya di situs WordPress Anda. Selalu gunakan tema/plugin yang sering diperbarui.
Catatan: Sebelum melakukan pembaruan, periksa kompatibilitas antara inti WordPress, tema, dan plugin untuk memastikan situs Anda berfungsi sebagaimana mestinya. Untuk menguji, Anda dapat membuat salinan situs web langsung Anda, lalu memeriksa kompatibilitasnya di lingkungan pementasan WordPress.
Tip#4 Gunakan Plugin Formulir Tepercaya
Jika Anda menjalankan bisnis atau bahkan blog sederhana, Anda harus mengetahui pentingnya formulir seperti formulir pendaftaran, formulir login, formulir kontak, dll. Dengan sejumlah plugin yang tersedia di repositori WordPress, sulit untuk menemukan yang terbaik. Oleh karena itu, untuk mempersempit pencarian Anda, kami telah menyusun daftar plugin WordPress Form terbaik.
Catatan: Jangan lupa untuk memeriksa kerentanan yang ditemukan sebelumnya dan resolusinya sebelum memilih plugin apa pun.
Tip#5 Sembunyikan Versi WordPress
Selalu disarankan untuk tidak menampilkan versi WordPress secara publik. Memiliki informasi ini tersedia untuk umum dapat mempermudah penyerang untuk mengeksploitasi kerentanan yang diketahui pada versi tertentu.
Untuk menyembunyikan versi WordPress, cukup salin dan tempel di bawah baris kode ke file functions.php dari tema aktif Anda.
remove_action('wp_head', 'wp_generator');
Tip#6 Ubah Awalan Basis Data
Saat Anda menginstal WordPress, secara default, awalan basis data disetel ke “ wp_ ”. Sebagian besar pengguna WordPress mengabaikan dan hanya menginstal dengan pengaturan default. Menebak tabel database menjadi lebih mudah untuk dieksploitasi menggunakan teknik SQL Injection.
Jangan khawatir, jika Anda sudah menginstal WordPress. Ada panduan yang sangat baik tentang bagaimana Anda dapat mengubah awalan database di WordPress.
Tip#7 Selalu Ambil Cadangan
Cadangan mungkin tidak terkait langsung dengan SQL Injection. Namun, ini dapat membantu Anda memulihkan situs yang diretas. Cadangan WordPress dapat disimpan dengan dua cara:
- Cadangan Lokal : Cadangan yang dibuat secara otomatis dan/atau manual dan terletak di penyedia hosting Anda. Tidak disarankan untuk menyimpan cadangan lokal jika Anda menggunakan hosting bersama, setelah server disusupi, Anda juga dapat kehilangan cadangan. Namun, jika server Anda berada di tangan yang tepat seperti Cloudways, Anda dapat menyimpan cadangan lokal untuk WordPress.
- Pencadangan di Luar Situs: Pencadangan otomatis dan/atau manual akan dibuat dan dikirim ke lokasi penyimpanan di luar situs yang diinginkan seperti Google Drive, Dropbox, Amazon S3, dll. Kami telah menulis panduan ekstensif untuk mencadangkan situs WordPress.
Tip#8 Simpan Log
Dre Armeda, salah satu pendiri Sucuri pernah berkata:
Orang Dan Akan Terus Menjadi Masalah Keamanan Terbesar Dengan WordPress.
Artinya, Anda harus melakukan bagian Anda. Awasi perubahannya dan Anda harus mencatat semua yang terjadi di situs WordPress Anda. Ini akan membantu Anda melacak perubahan yang dilakukan oleh Anda dan/atau penyerang sehingga Anda dapat bertindak sesuai dengan itu.
Ada plugin log audit keamanan WordPress yang luar biasa yang pasti akan membantu Anda! Selain itu, penyedia hosting Anda juga menyimpan catatan tentang semuanya. Teruslah membaca log sesekali.
Tip#9 Gunakan Firewall
Salah satu hal terbaik dan penting adalah menggunakan firewall yang memastikan bahwa data pelanggan aman dan terlindungi. Selain itu, Anda juga dapat menentukan tingkat akses pengguna berdasarkan berbagai faktor seperti paket berlangganan. Jika Anda menggunakan Cloudways maka Anda tidak perlu khawatir. Semua server yang dihosting Cloudways dilindungi oleh firewall tingkat OS yang menyaring lalu lintas berbahaya dan mencegah penyusup.
Tip#10 Hapus Fungsi Database yang Tidak Diperlukan
Salah satu teknik paling efektif untuk menghapus fungsionalitas dan konten database yang tidak perlu. Semakin rentan terhadap serangan injeksi SQL potensial. Untuk mencegah hal ini, normalkan database Anda dan buat situs Anda lebih baik dan lebih cerdas.
Pertanyaan yang Sering Ditanyakan
T: Apa itu Injeksi SQL?
A: SQL Injection adalah hasil dari celah dalam pengkodean backend. Penyerang dapat dengan mudah menyalahgunakan bidang input dengan memasukkan kode berbahaya yang dapat menjalankan perintah SQL dan dapat membuat, mengambil, memperbarui, dan bahkan menghapus data dalam database.
T: Apa contoh injeksi SQL WordPress?
A: Itu terjadi untuk waktu yang lama, contoh lain dari kerentanan di WordPress dilaporkan kembali pada Sep 2017. WordPress Core tidak secara langsung terpengaruh oleh kerentanan ini, namun, sebuah patch (WordPress 4.8.3) dirilis untuk mencegahnya mempengaruhi plugin WordPress dan tema.
T: Apa yang dilakukan injeksi SQL?
J: SQL Injection adalah teknik hacking yang paling dasar dan banyak digunakan untuk memanipulasi database WordPress. Saat ini, Cross Site Scripting (XSS) populer dan telah menjadi metode nomor satu untuk meretas situs WordPress.
Kata-kata Terakhir!
Seperti yang dikatakan sebelumnya, tidak ada cara yang sangat mudah untuk melindungi situs WordPress. Selalu ada kemungkinan untuk diretas, ini bisa karena kerentanan di inti, tema, dan plugin. Itu sebabnya selalu disarankan untuk DIPERBARUI! SQL Injection telah banyak dikendalikan dalam beberapa tahun terakhir.
Jika Anda pernah menghadapi segala jenis serangan WordPress SQL Injection, bagikan pengalaman Anda dan juga bagaimana cara Anda menghilangkannya. Saya yakin ini akan membantu pengguna WordPress lainnya.
