Wednesday, April 22, 2015

Mengamankan Login Admin Web CMS Wordpress

Hallo bro :D
Pada kasus kali ini saya akan melakukan percobaan pada web yang menggunakan cms wordpress,

Seperti yang kita ketahui, bahwa wordpress mempunyai login admin yang terletak pada file “wp-login.php” jadi semua yang berhubungan dengan login akan di redirect ke “wp-login.php” karena ini adalah file utama untuk dapat masuk ke menu admin,, jadi apabila sang attacker menemukan vuln pada web kita dan melakukan tehknik SQL Injection dan menemukan Username dan Password admin kita, maka sang attacker akan dengan mudah untuk mencari login admin, :v

Baik,, kayaknya kebanyakan Lamu, jadi kita mulai saja step by step nya
Buka file wp-login.php yang ada pada direktori utama cms wordpress kita
Nah,, setelah terbuka maka kita akan menemukan sekumpulan Script yang ngga karu-karuan

Jadi inti dalam pengodingan yang saya ambil seperti ini
<?phpCODING YANG NGGA KARU-KARUAN ITU
?>
 Nah,, sekarang kita akan memasukan sedikit bumbu ke dalam koding tersebut, kita disini akan menggunakan bantuan session() untuk mengonfirmasi user yang masuk ke halaman login, dan akan menggunakan fake login untuk yang bukan user admin tersebut, jadi maksud saya menggunakan fakelogin disini hanya untuk sedikit mengerjai sang attacker,, hehehehe,, untuk menetukan user dan bukan user admin kita akan menggunakan fungsi if(),,,

Jadi kesimpulan dari coding yang saya maksud diatas seperti ini
<?phpif (session('untuk mengonfirmasi'){TAMPILAN FAKE LOGIN ADMIN} else {LOGIN ADMIN ASLI}?>
Oke, saya harap kalian bisa mengerti dengan kesimpulan diatas
Next,,,
Setelah dipahami, sekarang kita akan membuat session() untuk mengonfirmasi user yang masuk
<?php//buat session untuk mengonfimasi user yang masuksession_start();
if (!isset(
if (!isset($_SESSION['konfirm'])
   || 
   || $_SESSION['konfirm'] !== true) {TAMPILAN FAKE LOGIN ADMIN} else {LOGIN ADMIN ASLI}?>
Coding diatas menjelaskan dimana apabila user sudah membawa session “konfirm” maka dia akan menampilkan “LOGIN ADMIN ASLI” namun apabila user masuk sebagai user yang tidak membawa session “konfirm” maka dia akan menampilan “TAMPILAN FAKE LOGIN ADMIN“,,, gitu lohh,, hehehehe

Oke next,,
Untuk membuat session “konfirm“, maka kita akan membutuhkan sebuah file yang akan meredirect ke file login tersebut
Copy script ini, dan simpan dengan nama “terserah.php” jadi teserah mau di namain apa,, usahakan yang agak susah dikit,, supaya tidak gampang ditebak,, contoh “sayaadalahadmin.php

<?php
session_start
();
if (isset(
$_SERVER['REMOTE_ADDR'])) {
   
$_SESSION['konfirm'] = true;
      
header('Location: wp-login.php');
      exit;
   }
?>
Oke,, setelah itu kita akan membuat tampilan fake login admin,

Buka halaman login admin sebagaimana biasanya,, klik kanan >>> View Page Source,, 
Copy semua script yang ada didalam,,

Sekarang masuk ke “wp-login.php“, Paste source code yang tadi dicopy ke dalam “wp-login.php” Letakkan pada bagian if(){source code} dan tambahkan fungsi “echo” agar source code dapat di tampilkan

Metodenya seperti ini
<?php//buat session untuk mengonfimasi user yang masuksession_start();
if (!isset(
if (!isset($_SESSION['konfirm'])
   || 
   || $_SESSION['konfirm'] !== true) {
echo 
echo "SOURCE CODE PASTE DISINI";
} else {
} else {LOGIN ADMIN ASLI}
?>
Perhatikan :
Coding diatas akan mengalami error apabila pada bagian echo “” tanda kutip pembuka dan tanda kutip penutup mempunyai karakter yang sama,

Contoh :
<?phpecho "<font face="verdana">Ini Error</font>";
?> 
Coding diatas akan mengalami error dikarenakan tanda kutip pembuka echo terganggu oleh tanda kutip yang ada pada bagian HTML “verdana”, jadi untuk menutup kemungkinan terjadinya error maka tanda kutip untuk HTML kita tutup dengan karakter \ sebelum tanda kutip pembuka HTML dan penutup HTML

Contoh :
<?phpecho "<font face=\"verdana\">Ini Tidak Error</font>";?> 
Oke,, saya harap kalian sudah mengerti, sekarang kita lanjut ke tahap berikutnya, yaitu membuat Fake Login Admin pada saat memasukkan Username dan Password dapat berjalan sebaimana login admin yang asli,,, tenang,, disini kita tidak akan menggunakan Database untuk membuat login,,

Pertama lihat pada bagian Input Username dan passwordnya menggunakan nama apa,, Lihat pada Source Code untuk tampilan Fake Login Admin
nama yang digunakan untuk Login Username adalah “log” sedangkan untuk login Passwordnya adalah “pwd“,, setelah mengetahui hal itu maka selanjutnya kita akan membuat Pengonfirm untuk mengetahui apakah Username dan Passwordnya sama atau tidak

Metode coding yang saya buat seperti ini
<?php//buat session untuk mengonfimasi user yang masuksession_start();
if (!isset(
if (!isset($_SESSION['konfirm'])
   || 
   || $_SESSION['konfirm'] !== true) {
$username $_POST['log']; //untuk login Username$password $_POST['pwd']; //untuk login Password$gabung1 = array($username$password); //username dan password yang diinput$gabung2 = array("admin""admin123"); //username dan password

//Periksa username dan password tersebut apakah sama atau tidak
   

//Periksa username dan password tersebut apakah sama atau tidak   if ($gabung1 != $gabung2) {
echo 
echo "SOURCE CODE FAKELOGIN ADMIN";
} else {
echo 
} else {echo "MAAF INI HANYA HALAMAN ADMIN PALSU YANG SAYA BUAT";
}
} else {
}} else {LOGIN ADMIN ASLI}?> 
Jadi kesimpulan dari keseluruhannya begini,,
Ketika pada waktu sang attacker menemukan vuln pada web kita, dan melakukan SQL Injection, maka dia akan menemukan username dan password web kita melalui database yang telah di iject,, dengan unsernamenya adalah “admin” dan password adalah “admin123“, setelah itu maka sang attacker akan mencari login admin web kita yang diketahui menggunakan cms WordPress dimana login wordpress terletak pada http://web.kita/wp-login.php,, karena kebetulan Login admin tersebut sudah kita filteri sehingga sang attacker tidak akan menyadari bahwa login admin yang dimasuki hanyalah sebuah tampilan Fake Login yang akan meredirect dia ke tampilan yang betuliskan “MAAF INI HANYA HALAMAN ADMIN PALSU YANG SAYA BUAT“,, jadi kalau sang admin asli yang mau masuk ke login admin itu, maka sang admin akan masuk melalui, http://web.kita/sayaadalahadmin.php, sehingga dia akan di redirect ke login admin http://web.kita/wp-login.php tapi dengan tampilan Login Asli, karena sang admin telah membawa session “konfirm” sebagai konfimasi bahwa dia adalah seorang admin

Sumber

Artikel Terkait

Mengamankan Login Admin Web CMS Wordpress
4/ 5
Oleh

Berlangganan

Suka dengan artikel di atas? Silakan berlangganan gratis via email

2 komentar

Untuk kalian yang ingin dibuatkan tentang tutorial sama kami, bisa kirim saran atau komentar dibawah.
Jika kalian Ingin dihargai, Berkomentarlah yang Baik.