Anda di halaman 1dari 4

Database Security SQL Injection

Tujuan
1. Memahami dan Menerapkan Teknik SQL Injection 2. Memahami dan Menerapkan meminimalisir Teknik SQL Injection

Konsep Dasar
SQL Injection merupakan sebuah teknik web hacking yang dapat merusak suatu database dalam suatu situs. Teknik di dalam SQL Injection adalah dengan jalan menginput perintah-perintah standar dalam SQL (DDL,DML,DCL). Teknik ini memanfaatkan kelemahan dalam bahasa pemrograman scripting dalam mengolah suatu sistem database. Dan yang pasti Teknik serangan tersebut dapat menimbulkan masalah yang serius. Karena dengan teknik tersebut memungkinkan sesorang dapat login kedalam sistem tanpa harus memiliki account. Selain itu teknik ini juga dapat memungkinkan seseorang merubah, menghapus, maupun menambahkan data-data yang berada di dalam database. Bahkan bisa saja dapat mematikan service database server tersebut sehingga tidak bisa memberi layanan kepada web server. Teknik dari serangan ini tidak dapat dicegah akan tetapi dapat diminimalisir dengan merubah script bahasa pemrograman atau warning kesalahan error query tidak ditampilkan. Lebih baik error langsung ditampilkan error 404.

Latihan Basic SQL Injection


1. Buat database dengan tabel user yang berisi 4 buah field dengan nama field : ID, Nama, Username dan Password. Isi satu buah record untuk memvalidasi form login yang akan dibuat. 2. Buat Script PHP seperti di bawah ini untuk form login : <?php $connect = mysql_connect("localhost","root","") or die(mysql_error()); mysql_select_db("db_injection") or die(mysql_error()); $username = $_POST['username']; $password = $_POST['password']; if ($username&&$password) { $query = mysql_query("SELECT * FROM tbl_user WHERE username='$username' AND pass='$password'"); if (mysql_num_rows($query)) die("Acces diterima!"); else die("Acces ditolak! menggunakan password $password"); } ?> <form action='index.php' method='POST'> <table> <tr> <td> Username: </td> <td> <input type='text' name='username'> </td> </tr> <tr> <td> Password: </td> <td> <input type='text' name='pass'> </td> </tr> </table> <input type='submit' value='Login'> </form>

3. Masukkan SQL Injection dengan memasukkan karakter (OR=) pada password. Dan liat hasilnya. 4. Untuk meminimalisir teknik SQL Injection diatas rubah kode PHP dalam form login seperti dibawah ini dan lakukan kembali langkah no 3. Lihat hasilnya : <?php $connect = mysql_connect("localhost","root","") or die(mysql_error()); mysql_select_db("db_injection") or die(mysql_error()); $username = $_POST['username']; $password = stripslashes($_POST['password']); if ($username&&$password) { $query = sprintf("SELECT * FROM users WHERE username='$username' AND password='$password'",mysql_real_escape_string($username),mysql_real_escape_string($passwo rd)); if (mysql_num_rows($query)) die("Acces diterima!"); else die("Acces ditolak! menggunakan password $password"); } ?> <form action='index.php' method='POST'> <table> <tr> <td> Username: </td> <td> <input type='text' name='username'> </td> </tr> <tr> <td> Password: </td> <td> <input type='text' name='pass'> </td> </tr> </table> <input type='submit' value='Login'> </form>

Evaluasi
Cari teknik-teknik SQL Injection yang lainnya dan coba terapkan pada website yang bisa dilakukan untuk mencoba teknik SQL injection tersebut

Anda mungkin juga menyukai