Saya mencoba mengamankan blog wordpress saya. Saya membaca beberapa posting di web yang harus saya ubah table_prefix
dan sembunyikan wp-config.php
. Namun, saya tidak mengerti? Apa yang bisa dilakukan penyerang dengan saya wp-config.php
?
Maksud saya ada konfigurasi db saya, tetapi penyerang membutuhkan saya DB_HOST
misalnya, yang tidak mudah didapat, untuk terhubung ke db saya? (Dalam kasus saya ini:, define('DB_HOST', 'localhost');
yang mana penyerang tidak dapat menggunakan untuk menghubungkan ke db saya )
Atau apakah saya kehilangan sth?
Saya sangat menghargai balasan Anda!
Jawaban:
localhost
mengacu pada mesin yang sedang dihidupkan. Sebagai contoh di situs saya sendiri tomjn.com localhost adalah127.0.0.1
seperti biasa. Ini tidak berarti hacker tidak tahu di mana untuk menghubungkan, itu berarti menggantikan hackerlocalhost
dengantomjn.com
.Tentu saja jika saya memiliki proxy yang duduk di depan ini tidak akan berfungsi, tetapi perlu diingat bahwa jika penyerang memiliki akses ke saya
wp-config.php
, akses yang sama akan membiarkan mereka melakukan hal-hal lain pada mesin itu.Jadi sekarang penyerang memiliki detail basis data Anda, dan mereka dapat membaca
wp-config.php
. Mereka sekarang memiliki akses ke semua yang ada di basis data Anda, dan dapat mengubah apa pun di basis data Anda.Bergantung pada keamanan pemasangan Anda, mereka dapat membuat pengguna sendiri, masuk, mengunggah plugin melalui zip dengan skrip PHP Shell, dan mulai mengeluarkan perintah atau menggunakan situs sebagai bagian dari bot net.
Mereka juga memiliki garam dan kunci rahasia Anda (jika Anda tidak memilikinya, buruk buruk buruk), jadi dengan kasar memaksa kata sandi pengguna Anda menjadi jauh lebih mudah. Mereka juga memiliki akses ke email mereka.
Cukup untuk mengatakan mendapatkan
wp-config.php
adalah salah satu hal terburuk yang bisa terjadi. Banyak hal dapat dilakukan dengan itu tetapi akan butuh berbulan-bulan untuk mengetik setiap kemungkinan serangan yang dihasilkan dari ini.Jika
wp-config.php
diperoleh, kemungkinan script serangan otomatis melakukannya, bukan orang yang sebenarnya. Ubah semua detail Anda, setel ulang semua kata sandi, dan tutup lubangnya.sumber
localhost
dengantomjn.com
. > Itu dengan asumsi Anda memiliki port ke database yang dapat diakses oleh dunia luar. Bukankah Anda akan aman jika Anda menutup port dalam aturan firewall, hanya mengizinkan komputer di jaringan lokal (termasuk komputer yang menjalankan wordpress itu sendiri) untuk terhubung ke database?Jika Anda hanya menerima akses ke database dari
localhost
(ini tidak tercapai dengan mendefinisikanDB_HOST
sebagailocalhost
)? Tidak terlalu banyak dengan sendirinya (kasus terburuk adalah penyerang mengambil alih akun admin), tetapi dalam kombinasi dengan kerentanan lain mungkin akan berguna bagi penyerang untuk memiliki akses ke konfigurasi Anda.Kredensial Masuk
Orang-orang menggunakan kembali nama pengguna dan kata sandi mereka. Seorang penyerang akan memeriksa apakah nama pengguna dan kata sandi database Anda (atau variasi mereka) berfungsi untuk instalasi wordpress Anda, untuk hoster Anda, untuk email Anda, dll.
Paling tidak seorang penyerang mendapat ide tentang jenis kata sandi yang Anda gunakan (benar-benar acak, hanya huruf kecil / angka, panjang, dll).
Awalan Tabel
Jika ada injeksi SQL, penyerang harus tahu nama tabelnya. Tergantung pada database, ini mungkin sangat mudah, atau mungkin melibatkan menebak. Jika itu melibatkan menebak, yang terbaik adalah memiliki awalan tabel.
Kunci dan Garam
Saya menemukan artikel ini menunjukkan bahwa Anda benar-benar tidak ingin ini bocor (pada dasarnya, siapa pun dapat mengambil alih akun admin Anda), walaupun saya tidak tahu seberapa mutakhirnya.
Database Charset
Beberapa suntikan SQL bergantung pada rangkaian karakter, jadi sebaiknya penyerang mengetahui hal ini.
Ringkasan
Jika Anda tidak mengizinkan akses luar ke database, jika Anda tidak menggunakan kembali kata sandi, dan jika Anda tidak memiliki suntikan SQL di mana pun, kekhawatiran utama akan menjadi kunci dan garam.
sumber
Saya berasumsi Anda bertanya tentang akses baca, karena akses tulis pada dasarnya adalah akses untuk menyuntikkan kode sendiri untuk melakukan apa pun yang ia suka dengan situs Anda.
Asumsi Anda bahwa info DB tidak sensitif adalah salah. Mari kita asumsikan situs Anda di-hosting di godaddy. AFAIK godaddy menggunakan server mysql khusus yang mungkin hanya dapat diakses dari server mereka sendiri, tetapi jika saya tahu detail Anda seberapa sulit bagi saya untuk membuat akun godaddy dan menulis skrip yang mengakses DB Anda? Dalam hal DB lokal lebih sulit untuk dieksploitasi tetapi pada server hosting bersama Anda mungkin memiliki 100 situs berbagi server dengan Anda, dapatkah Anda mempercayai mereka cukup aman sehingga Mr Evil tidak dapat membobolnya dan menggunakannya untuk menyerang situs Anda?
sumber