Kamis, 22 September 2011

0 celah bug / keamanan di wordpress

Date: Kamis, 22 September 2011 20.13
Category:
Author: 0x13
Share:
Responds: 0 Comment
Salah satu celah keamanan lain dari WordPress yaitu terletak pada direktori wp-content/themes/nama-themes. Misalnya pada URLseperti 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

  1. Login ke kontrol panel hosting Anda.
  2. Buka file index.php pada direktori theme yang Anda gunakan pada situs/blog Anda. Misalnya: wp-content > themes > namatheme > index.php
  3. Tambahkan kode PHP berupa:
    <?php error_reporting(0);?>
    Tepatnya di atas atau sebelum kode <?php get_header(); ?>
    Lihat saja contoh berikut agar lebih jelas.

  1. 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
  2. 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.

Artikel Terkait :



Posting Komentar