Tuesday, July 17, 2018

Menutup Bug SQL Injection

  No comments

Assalamualaikum Wr Wb

Kali ini Saya akan membahas cara menutup bug SQL Injection,SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi clientdengan cara memodifikasi perintah SQL yang ada di memori aplikasi client.

Disini Saya Akan membahas cara menutup bug SQL Injection, Langsung Saja Ke Pembahasan

Sebagai contoh Saya disini memiliki Source Code yang vuln terhadap SQL Injection
Code nya sebagai berikut :




<?php 
$id = $_GET['id'];
$q = mysql_query("SELECT * FROM berita WHERE `url` = '".$id."' ") or die(mysql_error());
$row = mysql_fetch_array($q);
$qryUser = mysql_query("SELECT user FROM akses WHERE id_akses = '".$row['id_akses']."' ");
$rowUser = mysql_fetch_array($qryUser);
?>

Query SQL diatas vuln karena tidak ada filter sama sekali,sehingga kita  bisa menyisipkan perintah SQL.



Untuk Menangani Hal Tersebut,kita perlu memberi filter pada Query,dengan cara sebagai berikut :



1. Dengan Memberi Perintah is_numeric

Jadi Query SQL nya sebagai berikut :





<?php
$id = $_GET['id'];
$q = mysql_query("SELECT * FROM berita WHERE `url` = '".$id."' ") or die(mysql_error());
$row = mysql_fetch_array($q);
$qryUser = mysql_query("SELECT user FROM akses WHERE id_akses = '".$row['id_akses']."' ");
$rowUser = mysql_fetch_array($qryUser);
if(!is_numeric($id)){
header("location:index.php");
exit;
}
?>


Jadi jika perintah yang dimasukkan bukan numerik,maka akan redirect ke index.php



2. Menggunakan mysql_real_escape_string





$id = mysql_real_escape_string($_GET['id']);


Dengan begitu saat sang attacker mulai meng-inject target maka tidak ada error yang muncul







Sekian pembahasan kali ini,jika ada salah saya mohon maaf

wasalamualaim wr wb



Referensi :



- Simple patching bug SQL injection ~ LAmongan Xploiter

Cara Menutup Bug SQL Injection (SQLi) ~ abaykan

No comments :

Post a Comment