Cara Menutup Bug Bypass Admin


Hey guys bertemu lagi dengan mimin :D kali ini mimin bakalan kasih tau cara menutup bug bypass admin , seperti biasa sebelum masuk ke tutorial mimin kasih sedikit gambaran apa itu bypass admin, bypass admin merupakan sebuah bug di suatu sistem dimana seorang attacker bisa masuk sebagai admin hanya dengan menggunakan sebuah query hal ini terjadi karena tidak adanya filterisasi pada script login di sebuah web.

Ok itu dia gambaran singkatnya , sekarang langsung ke tutorialnya ... cekidot ...


  • Disini mimin punya script login sederhana yang masih terdapat bug didalamnya
<?php
mysql_connect(“localhost”,”root”,””); // Untuk koneksi ke database
mysql_select_db(“manasaiatahu”); // untuk memilih database yang akan digunakan
$user=$_POST[‘user’]; // user post
$pass=md5($_POST[‘pass’]); // password post
$cek_user=mysql_query(“select * from admin where user=’$user’ AND pass=’$pass'”); // cek user
$results=mysql_num_rows($cek_user); //menghitung jumlah user yang di cek
$r=mysql_fetch_array($cek_user) ;
if($results>0){
session_start();
$_SESSION[‘admin’]=$r[‘user’];
header(“Location:.”);
}
else{
header(“Location:.”);
}
?>
  • letak bugnya disini ya , discript diatas belum ada fungsi untuk memfilter data yang diinputkan diform login.
$user=$_POST[‘user’] // user post;
$pass=md5($_POST[‘pass’]) // password post;

  • Jadi sekarang kita akan membuat sebuah fungsi untuk memfilter data yang diinputkan di form login, disini fungsinya mimin kasih nama antibypass , Nb: untuk nama terserah kalian tapi tetap perhatikan cara penulisan fungsi php yang baik dan benar 

function antibypass($data){$filter=mysql_real_escape_string(htmlspecialchars(stripslashes(strip_tags($data, ENT_QUOTES))));
return $filter;
}

  • Jika digabungkan akan menjadi seperti ini
 <?php
mysql_connect(“localhost”,”root”,””); // Untuk koneksi ke database
mysql_select_db(“manasaiatahu”); // untuk memilih database yang akan digunakan
function antibypass($data){$filter=mysql_real_escape_string(htmlspecialchars(stripslashes(strip_tags($data, ENT_QUOTES))));//fungsi untuk memfilter data
return $filter;
}
$user=antibypass($_POST[‘user’]); // user post
$pass=antibypass(md5($_POST[‘pass’])); // password post
$cek_user=mysql_query(“select * from admin where user=’$user’ AND pass=’$pass'”); // cek user
$results=mysql_num_rows($cek_user); //menghitung jumlah user yang di cek
$r=mysql_fetch_array($cek_user) ;
if($results>0){
session_start();
$_SESSION[‘admin’]=$r[‘user’];
header(“Location:.”);
}
else{
header(“Location:.”);
}
?>
Yappp kira kira seperti itu , semoga ilmu ini bermanfaat ... teruslah berkarya dan sampai jumpa ^^

Posting Komentar

0 Komentar