Pada dasarnya trik ini mencoba mencegah query string exploit yang biasanya melakukan scan mencari titik kelemahan (vulnerability) dan celah yang bisa ditembus dari website kita. Sebelum melancarkan aktifitas n*kalnya, tentunya para h*cker atau defacer akan mencari terlebih dahulu dimana titik tembus website target (exploit). Sejak dibuat blog ini cukup sering kena deface, namun dulu saya tak begitu peduli karena blog ini masih kecil dan sepi pengunjung. Namun sejak serangan terakhir, saya tersadarkan akan pentingnya security blog karena data sudah lumayan banyak dan khawatir defacer mengubah data atau bahkan menghilangkannya. Kebetulan pada waktu itu saya scan seluruh isi website ini dan menemukan script aneh yang disisipkan pada plugin (script shell). Saya simpan dan coba pahami cara kerjanya melalui server lokal di PC. Dari situ saya temukan bahwa salah satu langkah awal melindungi blog wordpress adalah dengan memblok dan memfilter query string exploit sehingga meminimalisir kemungkinan deface.
Yang saya terangkan di sini sebenarnya adalah langkah lanjutan dari cara mengamankan wordpress sebelumnya yaitu dengan Menyembunyikan dan Merubah URL Admin WordPress. Caranyapun sama yaitu dengan menambahkan sejumlah kode pada file .htaccess dan diadaptasi dari plugin yang sama pula (Better WordPress Security). Diantara fungsi utama dari kode ini adalah sebagai berikut:
- Mencegah pencarian atau scanning titik kelemahan (vulnerability) blog wordpress kita.
- Memblok dan memfilter query string mencurigakan yang berasal dari script exploit.
- Lebih lanjut mencegah perintah eksekusi illegal (external request) seperti penelusuran data, tracking, atau penghapusan data sampai mencegah injeksi SQL.
Adapun cara pakainya gampang saja, cukup tambahkan kode di bawah pada file .htaccess di root folder website Anda.
# BLOCK QUERY STRING EXPLOITS <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} \.\.\/ [NC,OR] RewriteCond %{QUERY_STRING} ^.*(bash|git|hg|log|svn|swp|cvs) [NC,OR] RewriteCond %{QUERY_STRING} etc/passwd [NC,OR] RewriteCond %{QUERY_STRING} boot\.ini [NC,OR] RewriteCond %{QUERY_STRING} ftp\: [NC,OR] RewriteCond %{QUERY_STRING} http\: [NC,OR] RewriteCond %{QUERY_STRING} https\: [NC,OR] RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR] RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR] RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>|ê|"|;|\?|\*|=$).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*("|'|<|>|\|{||).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127\.0).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR] RewriteCond %{QUERY_STRING} ^.*(request|select|concat|insert|union|declare).* [NC] RewriteCond %{QUERY_STRING} !^loggedout=true RewriteCond %{QUERY_STRING} !^action=rp RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$ RewriteRule ^(.*)$ - [F,L] </IfModule> # END BLOCK QUERY STRING EXPLOITS
Dengan cara ini akan menjauhkan para defacer amatir dari mengeksploitasi celah atau lubang kebocoran keamanan wordpress kita. Beruntunglah kebanyakan dari para defacer adalah orang-orang iseng yang rata-rata newbie atau spammer. Dan script yang mereka pakaipun adalah PHP r57 atau shell.
Perlu diketahui pula bahwa kadangkala kelemahan atau celah tidak hanya berasal melulu dari engine wordpress, terlebih sering pula dari tema atau plugin. Solusinya adalah segeralah update tema atau plugin dengan versi terbaru.
Selain itu untuk mencegah eksekusi eksternal terhadap file di dalam website kita, tambahkan pula kode berikut:
RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK) [NC]
RewriteRule ^(.*)$ - [F,L]
Demikianlah artikel mengenai cara Mencegah Akses Exploit WordPress ini, semoga bermanfaat dalam membantu menjaga dan meningkatkan keamanan blog Anda. Untuk optimasi .htaccess lainnya terlebih dalam meningkatkan kecepatan loading blog silahkan baca juga:
Bagaimana penerapannya pada web selain wordpress atau di web php yg kita buat sendiri?
Ini kan htaccess jadi universal bisa dipakai untuk selain wordpress
hi! great is your plugin…but i encountered an error “You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘) ORDER BY RAND() LIMIT 5’ at line 8 on line: 528”.
mas kalau yang websitenya selalu dialihkan ke url lain.
contoh: hxxp://vjtjpy.eu/select.php?query=c3JjPTg4Jmdwc
tau gak solusinya ?
please mas respone 😀
Kalo dialihkan ke url lain ya bisa saja, silahkan baca artikel sebelumnya, judulnya Menyembunyikan dan Merubah URL Admin WordPress. lihat kode dan ubah dari “/not_found” ke URL target.