Hello Welcome Back Dengan saya Zero_S
Kali ini saya akan memberikan tutorial cara mempatch bug bypass admin , Sebagian dari kalian mungkin sudah tidak asing atau mengetahui apa itu bypass admin . tapi sebelum membahas cara patch bug bypass admin alangkah baiknya untuk membaca artikel sebelumnya ya hehe.
Bypass admin login adalah teknik menginjeksi halaman login web target dengan perintah tertentu sehingga bisa terbuka.
Bagaimana cara kerja / cara meng Injection suatu web yang vuln Bypass-Admin , sudah di jelaskan cara meng injection suatu web yang vuln terhadap Bypass-Admin di artikel sebelumnya ( Baca di Sini ) .
Contoh script yang vuln akan Bypass-Admin :
<?php $message = “”; if(isset($_POST[‘submit’])){ $username= ($_POST[username]); $password = md5($_POST[‘password’]); $query = “SELECT * FROM admin WHERE username = ‘$username’ and password = ‘$password’ and usertype = ‘1’”; $query_result = mysqli_query($con, $query); if(mysqli_num_rows($query_result)){ $row = mysqli_fetch_assoc($query_result); $_SESSION[‘admin_id’] = $row[‘id’]; $_SESSION[‘username’] = $row[‘username’]; header(“location: index.php”); }else{ $message = “Username and password is not matched.”; } } ?>
Pada source code diatas Terdapat Masalah yang bisa di Bypass-Admin
$username= ($_POST['username']); $password = md5($_POST['password']);
kita bisa tau, bahwa Pada Source code ini Tidak ada Filterisasi karakter yang mengakibatkan adanya bug, dimana seseorang dapat memasukkan query inject dan dapat masuk ke dashboard admin.
$username = ($_POST['username]);
kita tambahin source code filter seseorang tidak dapat memasuki dashboard admin atau melakukan Bypass pada website.
$username=addslashes(trim($_POST[username]));
Dengan adanya Filter tersebut seseorang tidak akan bisa menginjeksi login admin dan tidak akan berefek apa-apa.
Dan ini ketika source code setalah di kasih filter agar website atau login admin tidak bisa di Bypass-Admin.
<?php $message = ""; if(isset($_POST['submit'])){ $username = addslashes(trim($_POST['username'])); $password = md5($_POST['password']); $query = "SELECT * FROM admin WHERE username = '$username' and password = '$password' and usertype = '1'"; $query_result = mysqli_query($con, $query); if(mysqli_num_rows($query_result)){ $row = mysqli_fetch_assoc($query_result); $_SESSION['admin_id'] = $row['id']; $_SESSION['username'] = $row['username']; header("location: index.php"); }else{ $message = "Username and password is not matched."; } } ?>
-
Sekian Tutorial dari saya , maaf kalau kurang jelas dan kurang di mengerti.
Terimakasih