Menutupi Celah Keamanan Direktori Wp Content Themes WordPress
Melanjutkan pembahasan tentang security CMS WordPress. Salah satu celah keamanan lain dari WordPress yaitu terletak pada direktori wp-content/themes/nama-themes. Misalnya pada URL seperti ini:
http://namadomainsitus/wp-content/themes/nama-theme
Dengan menggunakan pola URL seperti itu, struktur direktori kontrol panel hosting yang digunakan oleh sebuah situs WordPress bisa terlihat. Ini bisa membuka celah untuk dieksploitasi lebih lanjut. Namun yang paling rawan yaitu terlihatnya username akun hosting dari domain situs yang dites menggunakan pola URL tersebut.
Memang sih, tak terlalu beresiko jika password-nya tidak diketahui atau sulit ditembus oleh pihak yang kurang bertanggung jawab. Selama password akun hosting tidak bocor atau tidak tertebak, maka walaupun username sudah diketahui, bisa saya katakan masih aman (dari ancaman hacking atau cracking).
Walaupun demikian, tentunya tidak ada salahnya kita sebagai admin situs (yang menggunakan CMS WordPress) berusaha meningkatkan level keamanan situs kita menjadi 1 level lebih tinggi.
Dengan menutup/mengamankan salah satu celah ini, tentunya situs kita akan relatif lebih sulit untuk ditembus. Username akun hosting kita jadi tidak mudah terlihat (lewat metode eksploitasi via URL).
Sebelum saya lanjut ke cara pencegahan, mari kita lihat dulu salah satu contoh tampilan celah keamanan WordPress yang cukup rawan.

Ilustrasi di atas hanyalah situs fiktif. Jadi, bukan berarti saya sengaja menelanjangi keamanan sebuah situs yang telah ada. Boleh Anda tes sendiri kalau tidak percaya tentang fiktifnya domain situs wongkampret.com :) Setidaknya hingga tulisan ini saya publish, belum ada yang menggunakan domain tersebut.
Dari pesan error yang muncul dalam gambar/contoh di atas, username akun hostingnya jelas terlihat, yaitu ‘wongkampret’. Sebenarnya tanpa eksploitasi begini pun bisa dengan mudah ditebak. Namun namanya juga contoh. Bisa saja username yang digunakan bukan berupa nama situsnya.
Celah keamanan seperti di atas cukup sering saya temukan. Misalnya pada beberapa blog WordPress teman-teman blogger (terutama yang menggunakan cPanel sebagai kontrol panel hostingnya). Bahkan pada salah satu blog milik seorang pakar WordPress ternama Indonesia. Pola pesan error yang muncul via URL di atas biasanya sama, yaitu berupa:
Fatal error: Call to undefined function get_header() in /home/username-hosting/public_html/wp-content/themes/nama-theme/index.php on line bla..bla..bla
Cara menutupi celah keamanan direktori wp-content/themes/namatheme
- Login ke kontrol panel hosting Anda.
- Buka file index.php pada direktori theme yang Anda gunakan pada situs/blog Anda. Misalnya: wp-content > themes > namatheme > index.php
- Tambahkan kode PHP berupa:
<?php error_reporting(0);?>
Tepatnya di atas atau sebelum kode
<?php get_header(); ?>
Lihat saja contoh berikut agar lebih jelas.
Seperti keterangan pada gambar di atas, kode yang kita tambahkan gunanya yaitu untuk menghilangkan pesan error ketika ada orang jahil ingin mengekploitasi keamanan situs WordPress kita lewat pola URL namadomain/wp-content/themes/namatheme
- Silakan klik tombol ‘simpan/save’ usai Anda menambahkan sebaris kode PHP di atas. Lalu coba tes kembali hasilnya dengan mengetikkan :
http://namadomainsitusanda/wp-content/themes/namathemeyangandagunakan
Jika berhasil, pesan error akan hilang dan hanya muncul halaman kosong. Namun penambahan kode penghilang pesan error ini bisa mengakibatkan kita tidak mengetahui di mana letak error ketika kita salah mengedit script theme. Kemungkinan cuma muncul halaman kosong/blank pada lokasi halaman yang telah kita edit. Misalnya pada halaman index. Bisa juga muncul isinya, namun tanpa keterangan error apa pun.
Jika menemukan kondisi seperti itu, ada baiknya Anda hapus sebentar baris kode penghilang pesan errornya. Setelah letak errornya Anda ketahui & bisa Anda hilangkan, silakan tambahkan kembali kode penghilang pesan error tersebut. Beres deh masalahnya ![]()
Selamat mencoba dan mohon koreksi jika ada yang keliru dari penjelasan saya di atas.
Untuk mengamankan celah keamanan direktori induk (misalnya wp-content dan wp-includes), silakan baca tutorial tentang Cara Mendisable Akses Directory WordPress (m-alwi.com)
Tautan Cepat »» Beri Komentar | Baca Ulang Posting
Baca Komentar | Daftar Posting Terbaru
Tambah KafeGue di Facebook
Ikuti KafeGue di Twitter
Menu Lainnya »» Atas » Beranda » Arsip » Profil » Kontak » Bawah
Langganan KafeGue.com melalui Email
Langganan melalui Pembaca RSS



Firefox 5.0 | Windows XP
kok klo dipke di twentyeleven ga bisa ya ? halaman na tetap aja ada tulisan parse error..gimana ya cara nambal na ????
Chromium 15.0.836.0 | Ubuntu 11.04
ibnu ismadi, wah. Gak bisa ya ternyata. Saya cari tahu dulu ya penyebabnya mas. Saya mau lihat source-code theme tersebut dulu.
Firefox 5.0 | Windows XP
iskandaria, ok makasih..ana tunggu mas is dan makasih sebelum na..
Chromium 15.0.836.0 | Ubuntu 11.04
ibnu ismadi, saya sudah lihat kode themenya. Coba mas Ibnu buka kembali file
index.phppada theme twentyeleven. Lalu coba tambahkan<?php error_reporting(0);?>pada baris pertama (di atas kode yang bertuliskan<?php. Caranya, bikin baris baru di atas kode pembuka PHP tersebut, sehingga hasil akhir penyisipan script penghilang errornya menjadi seperti berikut ini:Mudah-mudahan berhasil mas.
Firefox 5.0 | Windows XP
iskandaria, sips udah berhasil..mas kalau mengalihkan file not found ke halaman utama gimana ya ?
makasih banget atas bantuan na..
NB.maaf banyak tanya dan agak ngerepoin mas is..
Google Chrome 14.0.835.18 | Windows XP
ibnu ismadi, oh, kalau untuk meredirect halaman not found 404 ke halaman utama, coba buka kembali folder/direktori theme twenty eleven. Lalu cari file yang namanya 404.php. Setelah ketemu, hapus semua kode di dalam file tersebut dan ganti dengan kode pendek berikut ini:
Firefox 5.0 | Windows XP
iskandaria, makasih banyak mas is..satu lagi pertanyaan ane..knp ya blog bahasaislam.com ga bisa diakses setelah menggunakan kode yang mas beri? padahal klo ane mengakses via /wp-admin bisa..aneh bgt ?
ane udah hapus kode asli 404.php dan diganti dengan kode yang mas kasi tapi setelah ane coba mengakses file not found dan file tersebut otomatis dialihkan ke halaman utama tapi setelah tu halaman utama na ngeblank..kira2 knp ya?
coba dicoba deh..
Google Chrome 14.0.835.18 | Windows XP
ibnu ismadi, oh iya. Ternyata ngeblank. Aneh juga ya, padahal fungsi kode yang saya beri cuma untuk menghilangkan pesan error pada pola URL tertentu. Apakah mas Ibnu tidak mengedit file selain yang saya berikan itu?
Kalau kode redirect yang barusan saya berikan, sama sekali tidak bermasalah ketika saya tes untuk blog ini. Halaman depan tetap muncul (nggak ngeblank).
Mungkin saja mas Ibnu ada ngedit file lain sehingga membuat blog mas jadi ngeblank. Kalau emang nggak ada ngedit file lain, coba dihilangkan saja dulu kode penghilang pesan error pada file
index.phpFirefox 5.0 | Windows XP
iskandaria , file index.php yang terletak di thema twenty eleven bukan ?
Firefox 5.0 | Windows XP
iskandaria , kya na dihack orang deh..sebab sebagian komen ada yang terhapus..bukan krn koding yang mas beri..nanti deh ane konsultasi dengan pihak hosting..
Google Chrome 12.0.742.112 | Windows XP
Sangat bermanfaat strateginya, Mas! Tapi sy coba halaman sy (dg URL berstruktur kaya tadi, sebelum disisipin script), sy tidak menemukan pesan error. Jadi sy coba sebelum disisipi dan setelahnya pun tidak berubah. Sama-sama blank. Apakah normal, Mas? Coz, di atas get header tadi tidak ada script penghilang pesan error.
Chromium 14.0.813.0 | Ubuntu 11.04
febriosw, kalau begitu nggak perlu pakai kode penghilang pesan error lagi mas. Sudah aman dan normal kok. Mungkin pihak hosting blog mas sudah mengantisipasi hal tersebut.
WordPress 3.1.3
[...] keamanan di lokasi ini sudah saya bahas tuntas di postingan tentang cara menutupi celah keamanan wordpress pada direktori wp/content/theme/namathemes. Silakan simak jika Anda belum [...]
Opera Mini 4.3.24214 | J2ME/MIDP Device
Mas is,
Ia, wp-login.php indaam.com pake redirect.
Bung Hendro,
Ternyata pakai wp juga yah? Saya pikir anti wp :)
Chromium 14.0.795.0 | Ubuntu 11.04
indam, Bang Hendro sebenarnya emang gak suka pakai WP. Kalau blog barunya yang sekarang pakai WP, mungkin cuma buat eksperimen.
Opera 11.11 | Windows Vista
Wah…, kalau terjadi galat, susah juga ya menebak-nebak apa dibaliknya :).
Chromium 14.0.795.0 | Ubuntu 11.04
Cahya, itulah efeknya jika kita menonaktifkan pesan error. Tapi galat itu kan biasanya terjadi ketika kita usai melakukan pengeditan atau modifikasi script. Sebenarnya kita tetap bisa mengetahui galatnya jika efek yang kita harapkan dari pengeditan/penambahan script itu ternyata nggak muncul. Dari situ, kita bisa mencopot sebentar kode penghilang errornya. Gunanya agar pesan error/galat bisa muncul kembali. Nah, setelah kita tahu di mana letak error/galatnya (biasanya ditandai pada line sekian), kita bisa tambahkan kembali kode penghilang pesan errornya. Cukup [Ctrl] + [Z] lalu tekan ‘save’ :)
Firefox 4.0.1 | Windows XP
Mau aman ? Jangan Pake CMS Open Source mas. Meski di tambal2 tetep aja masih banyak celahnya. Apalagi blog saya, klo ada yang Cracking blog saya sih ga peduli, tinggal install ulang beres dah. Ini bukan menyangkut masalah hosting {cPanel} lho
Chromium 14.0.795.0 | Ubuntu 11.04
Nurul Imam, betul bahwa ini bukan cuma masalah hosting atau cPanel. Tapi bagaimanapun juga, dari URL yang muncul pada pesan error, bisa sedikit menggambarkan struktur direktori kontrol panel yang digunakan.
Setiap jenis CMS pasti ada kelebihan dan kekurangan tersendiri. Tidak semuanya sempurna, sekalipun berbayar. CMS berbayar juga menyimpan sejumlah problem, walaupun dari sisi keamanan relatif lebih baik. Menganjurkan pakai CMS berbayar tentu tidak tepat kalau cuma karena alasan lebih aman.
Sikap gak peduli jika ada yang meng-cracking blog kita sebenarnya kurang pas jika blog kita sudah punya banyak konten dan sudah tinggi trafiknya. Kalau masih baru sih ya gak masalah.
Masalah “kalau cuma mikir mesti ditambal-tambal tetap ada celahnya”, saya pikir kurang baik juga. Seolah-olah kita malas dan acuh. Yach, kalau blognya kayak blog mas imam, mungkin wajar aja mikir kayak gitu.
Sebenarnya, dengan belajar menambal celah keamanan, kita juga bisa dapat banyak ilmu dan keterampilan teknis. Celah keamanan adalah sebuah masalah. Mau gak mau kita jadi terdorong nyari solusinya, lalu baca sana-sini, akhirnya wawasan jadi bertambah. Apalagi jika sambil dipraktekkan. Ada nilai asyiknya juga. Selain kepuasan.
Jadi saya pikir, tak baik juga bersikap acuh atau cuek. Sama halnya dengan pikiran masa bodoh begini:
:)
Nah, gimana kalo semua pengguna komputer punya pikiran/mental kayak gitu? Analoginya sama juga dengan gak mau pasang antivirus atau gak percaya antivirus, padahal itu bisa mengurangi resiko untuk melakukan install ulang yang tidak perlu.
Chromium 14.0.795.0 | Ubuntu 11.04
Nurul Imam, tambahan lagi. Menggunakan CMS open source juga bisa mendorong kita sebagai penggunanya lebih kreatif dan bisa berpikir bagaimana cara menutupi bug yang ditemukan. Saya sendiri akhirnya mengalami hal tersebut. Bug yang saya tulis di postingan ini jujur saja hasil eksplorasi/temuan saya sendiri (bukan dari hasil baca di internet). Setelah saya menemukannya, saya pun nyari solusi. AKhirnya saya pilih pakai kode penghilang pesan error, walaupun itu mungkin bikin repot (kata bang Hendro).
Selain itu, saya akhirnya juga berhasil menemukan cara yang saya anggap terbaik untuk menutupi celah lain yang saya temukan. Jadi, walaupun WordPress ini banyak bug-nya, itu tak membuat saya jadi apatis atau acuh begitu saja. Justru dari situ, saya lebih tertantang/terdorong untuk belajar & eksperimen.
Firefox 4.0.1 | Windows XP
iskandaria, Jika bikin situs instansi sebaiknya pake CMS yang bukan Open Source, Bukan berarti berbayar itu tidak Open Source. Carilah yang berbayar dan kodenya tidak di umbar sana sini. Setelah saya mengamati komentar mas is dan memikirkan matang matang akhirnya saya mengerti apa yang mas is sampaikan.
http://kafegue.com/daftar-celah-keamanan-wordpress-yang-perlu-ditutupi/#comment-17970
Chromium 14.0.795.0 | Ubuntu 11.04
Nurul Imam, setuju atas tambahannya mas. Makasih banyak.
Opera 11.10 | Windows 7
kalau saya malah belum sempet maianan tambal2 celah keamanan, ngurusin ternak blog kebanyakan sampai lupa celah keamananya. hehehehe,,, pikir saya update blog satu2 saja sudah memakan waktu, mana sempet ngurusin celah keamanan blognya,, gawat juga ya kalau blog saya banyak celah keamannya yg bisa di bobol, jadi takut :((
Firefox 4.0.1 | Windows XP
hehehe, kenapa harus di tutupin..kl ane si, ga perlu soalnya gretongan.
Celah bukan di situ mas is..kl ane yg penting pas di wp-content/themes
Kalu kesana ngapain, lagian ntar bisa ga tau eror report.
cobain situs kota depok,,masuk ke login 3 kali salah..kl linux aman,, kl windows bisa kelagepan, soalnya rata2 browser instalnya di sistem…wkwkwk.
kl mau jaiilin hacker masukin log.txt sama trojan atau lebih kejam lagi virus dari vbs.
wp ntu rentan, malah sekarang joomla yang kuat..soalnya wp itu egois kalu kara ade gw,,selalu ada kata wp.
Chromium 14.0.795.0 | Ubuntu 11.04
Hendro Prayitno, maksudnya yang penting sampe direktori namadomain/wp-content/themes aja yach? Kalau cuma ampe situ, setau saya emang gak perlu ditutupin (udah aman dari sononye). Nah, lewat dari ntu yang bisa ngebuka username-nya. Justru di situ celahnya.
Soal ntar bisa ga tau error report, kan udah saya jelasin di akhir tulisan, bahwa kita bisa mengakalinya dengan menghapus sebentar kode PHP penghilang errornya. Nah kalo dah tau letak errornya di mana, kita pasang lagi kode PHP penghilang errornya. Beres kan?
Jadi, kode penghilang error bisa kita copot kapan aja, terutama pas kita abis memodifikasi atau abis ngedit dan ternyata efek tampilan yang kita harapkan nggak muncul. Dari situ, kita bisa tau kok kalo ada yang error. Nah, dari situ tinggal copot sebentar kode penghilang errornya. Nanti tinggal dibalikin lagi. Selesai deh masalahnya :)
Soal WP itu egois, kita kan bisa ngilangin kata ‘wp-nya’. Misalnya pada nama folder atau nama file. Tapi efeknya bisa merembet ke folder/file lain (juga harus diedit jika saling berkaitan).
Firefox 4.0.1 | Windows XP
iskandaria,
Bener juga mas IS,,tapi repot juga..kl saya mendingan di redirect akja..coba mas IS ketik blog saya di browser.
http://discrimate.co.cc/wp-content/
Dan juga yang satu ini:
http://discrimate.co.cc/wp-content/themes/
Menurut mas IS gimana tuh?
Chromium 14.0.795.0 | Ubuntu 11.04
Hendro Prayitno, yups. Pakai teknik redirect juga bagus (terutama buat ngerjain yang pengen usil)..hehehe. Saya udah liat kok. Kalau pakai browser Chrome, biasanya pas muncul kotak pop-up alert yang kedua, ada pilihan untuk langsung memblokirnya (menu prevent, di kotak alert tersebut juga). Jadi, yang ngerasa dikerjain bisa langsung memblok JavaScriptnya tanpa harus mengklik tombol OK sampe habis :D
Opera Mini 4.3.24214 | J2ME/MIDP Device
Jadi pada intinya pesan errornya diumpetin yah? mantap…
Chromium 14.0.795.0 | Ubuntu 11.04
indam, blog indaam.com pakai teknik redirect ya ternyata. Lebih mantap tuh!
Google Chrome 12.0.742.100 | Windows XP
Sebelumnya thank trackbacknya, seperti pepatah semakin tinggi pohon menjulang maka semakin kencang pula tiupan anginnya, semakin populer cms wordpress semakin banyak yg penasaran, usil dan iseng untuk menjahilinya dan kata pakar keamanan jaringan/web salah satu celah terlemah dari keamanan web yaa dari sisi webmaster/adminnya yg kurang peduli terhadap keamanan asssetnya, ada yg memang tidak tahu, tidak mau tahu atau malas ngoprek2 kode dsb.
Dengan banyak temen ngeblog mungkin bisa jadi salah satu cara untuk saling ingat mengingatkan jika masih ada celah2 keamanan di blognya, dan setelah baca postingan ini iseng2 aja saya sedikit investigasi untuk ngecek blog ini, dan ternyata masih ada bugnya Mas Is, ntar saya kirim dech via email/fb gak mungkin saya share di sini, jika berkenan minta tolong juga nih untuk blog saya heeeee siapa tahu ada yg kelupaan pada elemen/bagian tertentu yg belum saya tambal, lebih baik di hack temen sendiri kan dari pada dihack orang lain
Chromium 14.0.795.0 | Ubuntu 11.04
Alwi, wah, silakan informasikan ke saya via email mas. Ternyata masih ada celah yang luput dari pengamatan saya. Padahal perasaan saya sudah aman…hehehe. Saya tunggu emailnya. Makasih banyak sebelumnya.
Chromium 14.0.795.0 | Ubuntu 11.04
Alwi, sip deh. Sudah saya tutupi celah tersebut mas Alwi. Makasih banyak atas informasinya.
Firefox 4.0.1 | Windows XP
Jadi yang ketahuan disini hanya username nya ya?
Chromium 14.0.795.0 | Ubuntu 11.04
imadewira, betul. Cuma username. Kalau password kita agak rumit, saya rasa masih relatif aman. Tapi yang dikhawatirkan yaitu serangan melalui cara lain (tetap melalui eksploitasi URL).
Google Chrome 12.0.742.100 | Windows 7
alhamdulillah, blog saya aman mas. soalnya, jika ada link yang tidak aktif di blog saya, pasti menuju 404not found mas. apakah ini bagus ?
Chromium 14.0.795.0 | Ubuntu 11.04
Guusn, masih belum aman tuh mas guus. Belum dites ya dengan pola URL seperti yang saya contohkah di atas? Masih keliatan tuh username cPanel-nya :) Link yang tidak aktif belum tentu selalu menuju halaman 404, terutama jika yang berkaitan dengan folder wordpress.
Firefox 4.0.1 | GNU/Linux
Sehari bisa dapet 2 ilmu dsini *tinggal nunggu ekor 9 nya kluar*
Makasih bro, saya tau blogku rentan :D
Chromium 14.0.795.0 | Ubuntu 11.04
Kaget, kalo dah tau rentan pasti langkah selanjutnya lebih mudah. Masalahnya yaitu kalau kita nggak nyadar atau nggak tau :D
Firefox 4.0.1 | Windows 7 x64 Edition
makasih pengingatnya mas. blog saya dulu ketika saya buka ternyata berganti blog orang lain, tapi nama domainnya tetap domain saya, dan saya gak bisa login ke wp-admin atau cpanel. kemungkinan seseorang membobol dari sini ya?
Chromium 14.0.795.0 | Ubuntu 11.04
Yudi Yunior, kemungkinan dia masuk ke cPanel dan juga wp-admin mas. Dia mengganti tampilan halaman blog mas kayaknya. Termasuk mengganti password dan atau username loginnya.
Google Chrome 11.0.696.71 | Windows XP
Salah satu tips yang harus di coba nih.
Makasih udah di ingatkan mas is, selama ini sih saya jarang memperhatikan keamanan blog.
Tapi kayaknya sekarang sudah saatnya di perhatikan :)
Chromium 14.0.795.0 | Ubuntu 11.04
Adi Wibowo, tentu dong mas. Belum ditutupi ya kayaknya tuh (celahnya). Cuma nambahin sebaris kode aja kok. Gampang banget. Kalau error, tinggal Ctrl + Z aja, lalu save kembali file index.php-nya.
WordPress 3.1.3
[...] versi 3.1.3. ini, pihak pengembang sepertinya memperkuat keamanan sistem CMS ini (dengan menutupi celah keamanan WordPress yang sebelumnya menjadi [...]
WordPress 3.1.3
[...] sendiri. Wew, serius lho. Yups! Serius! Ini cuma trik saya (selaku admin) untuk menutupi salah satu celah keamanan CMS WordPress. Salah satu celah keamanan tersebut adalah halaman [...]
Firefox 3.6.17 | Ubuntu 10.04 x64
wahh makasih diingatkan mas..
sejak update kemaren saya blm sempat menambal..
saya dl biasanya dari php.ini
tp caranya jg sama..
Chromium 14.0.795.0 | Ubuntu 11.04
tomi, biasanya habis update memang harus ada yang kita edit ulang mas. Soalnya isi filenya berubah kayak sebelum di update. Sama-sama mas Tomi.
Google Chrome 12.0.742.100 | Windows 7
Kedubrak…. kena deh..
Makasih udah mengingatkan bro
Chromium 14.0.795.0 | Ubuntu 11.04
bro eser, hahaha. Ketauan tuh bro. Tapi langsung diamankan ya kayaknya setelah baca postingan saya di atas. Sip deh. Sekarang udah gak keliatan lagi username cPanelnya. Tapi, ups. Masih ada satu direktori tuh yang bermasalah.
Google Chrome 12.0.742.100 | Windows 7
iskandaria, Langsung ditambal bro, mumpung masih diberik kesempatan
Chromium 11.0.696.71 | Ubuntu 10.04
Wah baru tahu bisa dapat celah seperti itu, selama ini saya cuma bisa pake ajah. hehehe
terima kasih penjelasannya
Firefox 4.0.1 | Windows XP
terima kasih saya sering megalami peristiwa seperti diatas