Cara Menggunakan SQL Injection

SQL Injection adalah serangan yang memanfaatkan kelalaian website yang mengijinkan user untuk menginputkan data dimana data yang dimasukan berupa malicious character (Karakter Jahat) yang mampu merusak Query. Apa itu Query ? Query adalah perintah SQL yang mampu memodifikasi data pada database. Karakter jahat tersebut biasanya di masukan pada form inputan/parameter URL/bagian-bagian tertentu dari website yang memiliki interaksi dengan Query database. Sebelum kamu belajar cara menggunakan SQL Injection, tentunya kamu harus mengetahui bagaimana cara membuat Query. Hal ini sangat di wajibkan karena inilah inti dari serangan SQL Injection yang menyisipkan kode jahat dalam Query sehingga Query yang dikirimkan ke database menjadi rusak dan mengeluarkan informasi tentang database dalam bentuk error dan lain-lain.

icaksama sql injection

Lihat gambar diatas, menurut kamu pada bagian URL, manakah yang merupakan karakter perusak Query ? Ya tanda petik satu (‘). Kenapa ? karena jika tanda petik satu ikut dimasukan ke dalam Query database maka Query akan memiliki tanda petik satu ganda yang tentunya kita tahu bahwa kelebihan tanda petik satu adalah hal yang dapat mengakibatkan error. Cara seperti ini adalah langkah awal yang dilakukan para hacker untuk mendeteksi apakah website memiliki celah keamanan atau tidak. Bentuk URL di atas adalah teknik pemrograman website yang sering kita lakukan saat mengirimkan parameter bertipe GET sehingga terlihat di URL dan dapat dimodifikasi oleh hacker. Baca tentang Perbedaan Method GET dan POST di PHP

Perhatikan kembali gambar diatas, terdapat informasi error dalam browser karena kesalahan Query. Dengan informasi tersebut berarti hacker telah mengetahui satu tabel dengan nama users. Dari satu tabel ini, hacker akan membuat query yang lebih komplek untuk mendapatkan informasi yang lebih detail mengenai username dan password administrator. Biasanya digunakan teknik Subquery untuk melakukan hal ini. Lihat bentuk lain SQL Injection dibawah ini agar kamu lebih paham.

Cara Menggunakan SQL Injection

Ini adalah cara sederhana untuk menembus pertahanan form login pada suatu website. Untuk mendapatkan akses ke dalam website dari sebuah form login, masukan karakter berikut [highlight]’OR’ ‘='[/highlight] ke dalam inputan username dan password. Jika pertahanan dalam sebuah website terlalu lemah maka akan dengan mudah ditembus oleh SQL Injection dengan hanya menggunakan kode seperti itu. Sebagai contoh sebuat form login memiliki tabel dengan nama usertb dengan struktur dan data tabel sebagai berikut :

Struktur Tabel Usertb dalam Database
Struktur Tabel Usertb dalam Database

Dalam form login memiliki program Query sebagai berikut :

$username=$_POST['username'];
$password=$_POST['password'];
mysql_query(SELECT * FROM  `usertb` WHERE  `username` =  '$username' AND  `password` =  '$password');

Dari kode di atas bisa kita lihat pada variabel PHP $username dan $password, variabel PHP tersebut digunakan untuk mendapatkan data inputan dari form login yang bertipe POST, lalu dimasukan ke dalam Query database dibawahnya. Dan pada saat variabel dimasukan ke dalam Query maka bentuk Query akan terbentuk sebagai berikut :

SELECT * FROM  `usertb` WHERE  `username` =  ''OR' '='' AND  `password` =  ''OR' '=''

Gambar berikut adalah hasil pengambilan database berdasarkan Query diatas yang telah terinject.

Hasil SQL Injection
Hasil SQL Injection

Tidak error kan ? tapi menghasilkan hasil Query yang benar. Lihat kembali pada bagian Query yang telah terinject. Terlihat di sana bahwa kode [highlight]’OR’ ‘='[/highlight] telah merusak susunan Query. Jika Query yang terinject di artikan kedalam bahasa manusia, kurang lebih sebagai berikut “Hai Database, Tolong Keluarkan seluruh data dalam tabel usertb dimana username sama dengan kosong ATAU kosong sama dengan kosong dan password sama dengan kosong ATAU kosong sama dengan kosong”.

Okee! Demikian tutorial kali ini. Niat saya hanya menunjukan seperti apa bentuk SQL Injection agar para programmer website tahu hal apa yang harus dilakukan untuk mengatasi serangan tersebut. Baca juga tentang Cara Mudah Mengatasi Serangan SQL Injection

Ayo! Segera daftarkan email kamu untuk berlangganan!

Leave a comment