Celah di Wordpress


Status
Not open for further replies.

hostguin

Expert 1.0
Di forum tetangga sedang ramai dibahas tentang celah di Wordpress, yang dapat dimanfaatkan hacker untuk menghack Wordpress dan cPanel. Berikut sedikit rangkumannya, semoga bermanfaat.
Hanya dengan mengakses
http://domain_anda.com/wp-includes/wp-db.php
atau
http://domain_anda.com/dir_wp_anda/wp-includes/wp-db.php
maka akan muncul :
Fatal error: Call to undefined function wp_die() in /home/domain_utama/public_html/add_on.com/wp-includes/wp-db.php on line 1039

dari sini bisa terbaca struktur webnya, apakah domain utama atau add on.

Jadi intinya, bug tersebut terletak pada file wp-db.php (worpress-database)
Dan hampir semuanya ada pada line 1039

Solusinya :
<?php
error_reporting(0); <------ tambahkan pada file wp-db.php
/**
* WordPress DB Class

Dengan patch tersebut akan membuat blank ketika file tersebut di akses.
 

jaapns

Hosting Guru
Verified Provider
bener itu lagi rame2nya di bahas...... saya juga pengen ngangkat masalah ini ..tapi udah di duluin.... thanks bro.....sangat membantu ....
 

jaapns

Hosting Guru
Verified Provider
saya koreksi dikit : tidak perlu menggunakan <?php , krn di wp-db.php sudah di tetapkan itu ada.
cukup sisipkan aja :
error_reporting(0);
/**
* WordPress DB Class
 

jones

Poster 2.0
sebenarnya hampir semua file php jika bukan untuk akses akan begitu... meskipun anda pakai
PHP:
error_reporting(0);
itu memang bisa mengatasi, tapi sebenarnya itu bukan cara soft, meskipun banyak web programmer yang menyarankan pakai cara itu tetapi sebenarnya itu bukan solusi terbaik, rekomendasi dasar php itu biarkan error_reporting terbuka alias
PHP:
E_ALL
, nah cara soft nya adalah perlu menambahkan script ke baris paling atas wp-db.php, ada bermacam2 betuk,
misal kalau di joomla setiap file yg bukan untuk direct link biasanya sudah disisipkan
PHP:
 defined( '_JEXEC' ) or die( 'Restricted access' );
kalau phpBB ada
PHP:
define('IN_PHPBB', true);
sekarang anda tinggal lihat kebiasaan WP untuk memblok direct akses itu gimana?
bisa juga anda masukkan script yg kalau akses lansung ke script tsb maka akan serta merta dialihkan ke link lain, atau pakai block di .htaccess jg bisa koq
 

jaapns

Hosting Guru
Verified Provider
ya itu memang salah satu cara, yang kalo boleh saya bilang hanya sementara, belum ada patch yg bener2 efektif untuk menutup celah itu.

Paling tidak string itu bisa jadi tameng sementara deh.....

saya sarankan tidak mengandalkan itu saja.... pake secure wordpress dan wordpress firewall, karena walaupun ter- execute sql nya, paling tidak tipe hack nya terhadang wordpress firewall. itu yg selama ini saya terapkan.

Mungkin yang lain bisa menambahkan.
 

pemula_web

Apprentice 1.0
thanks infonya
tp saya pny lebih dari 5 website pake wordpress masa musti satu2 di tambahin ya..
dan keknya bnyk pengguna wordpress blum tahu hal ini
 

jones

Poster 2.0
ya itu memang salah satu cara, yang kalo boleh saya bilang hanya sementara, belum ada patch yg bener2 efektif untuk menutup celah itu.

Paling tidak string itu bisa jadi tameng sementara deh......
saya tidak melihat itu sesuatu yg membutuhkan path, itu hal umum dalam koding web, anda mau pakai apa saja selalu ada warning bila terjadi sesuatu yg tidak sesuai prosedur, developer WP mungkin hanya lupa untuk file tersebut, jadi kalaupun ketahuan itu ada di WP nga usah kuatir2 bangat lah, toh juga hanya segelintir orang mungkin yg ngerti gimana memamfaatkannya, jadi artinya anda berarti sudah termasuk paling sial kalau sampai ada yg mengusik WP anda dari memamfaatkan warning tsb

OK saya dah periksa file tersebut, masukkan code dibawah ini:
Open File http://domain_anda.com/wp-includes/wp-db.php

FIND:
PHP:
<?php
Add After:

if ($_REQUEST['http://domain_anda.com/wp-includes/wp-db.php']) die("Pak Jones Melarang anda mengunjungi file ini :24::24::24:.");
OR

PHP:
if ($_REQUEST['http://domain_anda.com/wp-includes/wp-db.php']) header("Location: ../",TRUE);
 

jones

Poster 2.0
Salah masukin, Baris code diatas nga kerja
ganti
PHP:
if ($_REQUEST['http://domain_anda.com/wp-includes/wp-db.php'])
dengan:
PHP:
if (strstr($_SERVER['PHP_SELF'], "wp-db.php"))
@ gresshost yah kalau di disable dari php.ini maka semua error untuk web akan off, ada positif dan ada negatifnya, tp by default itu aktif, by default adalah rekomendasi terbaik oleh developer,

kalau di disable warning errornya itu ibaratkan di kamar anda ada tai, terus untuk ngatasinya anda semprot dengan spray atau parfum. ya memang bau tainya bisa ilang tapi itukan bukan rekomendasi, yg direkomendasikan adalah tai nya dibuang terus lantainya di pel :cool:
 
Status
Not open for further replies.

Top