Ketika kita melakukan serangan SQL injection dah pasti langsung cari kolom dan table yang berhubungan sama username dan password administrator.
Nah setelah itu pasti kita langsung mencari admin page-nya. Beberapa dari kita lancar, mungkin dengan sedikit keberuntungan? Tebak – tebakan atau menggunakan tools. Nah sisanya bakalan kebingungan dan nyerah gitu aja (mungkin ini masalah yang sering dialami, saya juga gitu), karena dah nyerah cuman posting di forum hasil injectnya doang. Entah ingin sharing? Berharap orang lain menemukan admin pagenya? Atau cuman sekedar pamer? Who knows?
Itulah salah satu proteksi yang dilakukan oleh sang Administrator yaitu membuat nama yang unik bagi halaman adminnya. Mungkin beberapa tools yang bekerja secara Brute Force atau menyimpan list nama – nama halaman admin yang biasa digunakan bakalan gak berguna cuman bagi tools seperti Acunetix yang bekerja secara crawler?
Mungkin tips trik disini gak terlalu berguna cuman menarik aja, sapa tau ada ide – ide yang lebih bagus. Intinya walaupun admin pagenya telah di dapat tetapi kita menambah beberapa proteksi lagi dan siapa tau membuat sang attacker putus asa?
Langsung aja…
1. Mengamakan Admin Page Dengan Proteksi IP Tertentu.
Disini kita menggunakan file .htaccess.
Code:
order deny,allow
deny from all
allow from 192.168.1.5
Jadi letakkan file .htaccess tersebut di direktori tempat admin pagenya berada. Hanya IP 192.168.1.5 yang bisa masuk.
Untuk melihat alamat IP kalian bisa langsung cek disini atau lebih jelasnya tentang .htaccess bisa dilihat disini.
2. Double Password.
WTF? Kok double? Kan si Attacker dah liat isi database kita?
Gini, sebenernya ini juga saya asal – asal mikir aja dan mungkin bisa kita terapkan. Beberapa pikiran – pikiran saya cuman ini doang yang bisa saya praktekkan (maklum hasrat kuat skill kurang). Intinya satu password disimpan di database yang satu lagi enggak.
Berikut contoh simplenya.
Pertama kita buat database latihan1 dengan table useradmin yang isinya id_user (int(5), auto_increment, primary_key), username (varchar(25)) dan password (varchar(25)).
Image has been scaled down 11% (907x212). Click this bar to view original image (1008x235). Click image to open in new window.
Setelah itu kita buat dulu halaman login adminnya (index.php) yang berisi kode berikut…
Code:
Ketiga buat file cek_user.php
Code:
alert('Username Masih Kosong');
javascript:history.go(-1);";
exit;
}
else if(strlen($password)<1)>alert('Password Masih Kosong!');
javascript:history.go(-1);";
exit;
}
else if(strlen($password2)<1)>alert('Password2 Masih Kosong!');
javascript:history.go(-1);";
exit;
}
else {
$cari_dulu = "select username, password from useradmin where username = '$username' and password = '$password'";
$jalanin_sql = mysql_query($cari_dulu);
$cek_ada_gak = mysql_num_rows($jalanin_sql);
if ($cek_ada_gak == 1 and $password2 == 'cadangan')
{
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
header("location: berhasil.php");
}
else
header("location: index.php");
}
?>
Jangan lupa untuk membuat koneksi.php
Code:
berhasil.php apabila kita berhasil melakukan login.
Code:
Log Out";
?>
cek.session.php untuk mencek apakah session ada. Apabila tidak ada akan menampilkan pesan error.
Code:
PERHATIAN ..!!!
";
echo "KAMU HARUS LOGIN DULU :p
exit;
}
?>
Dan logout.php untuk menghapus session.
Code:
Pada cek_user.php password keduanya adalah "cadangan".
Jujur ini cuman sekedar iseng doang, gak ada yang aman 100 persen apalagi buat kalian yang dah pada jago – jago neh.
|
Tidak ada komentar:
Posting Komentar