Kategori
Security

Teknik SQL Injection

Sebelum membahas terkait dengan SQL Injection, sebaiknya pelajari dasar tentang web security https://miqbal.staff.telkomuniversity.ac.id/keamanan-web-web-security/ dan SQL Injection https://miqbal.staff.telkomuniversity.ac.id/sql-injection/

Prerequisite

Install XAMPP, jalan Apache dan MySQL

Buat database baru dengan phpmyadmin, dengan nama kamjar

Sebelum melakukan injeksi terlebih dahulu kita membuat database dummy, dengan cara mengunduh link berikut

databaseblog

 

File yang telah didownload kemudian di ekstrak dan diletakkan pada folder C:\xampp\htdocs , sehingga

Untuk password default mysql dengan menggunakan xampp adalah user =root dan passwordnya dikosongkan saja.

Sementara untuk mengkoneksikan antara php dengan dengan mysql dapat menggunakan perintah mysqli_connect . Berikut contoh pada file koneksi.php

Import database

Lakukan upload database pada menu phpmyadmin di menu impor, file dapat diambil pada folder blog yang telah didownload

Letakkan folder yang telah didownload pada folder C:\xampp\htdocs\blog

berikut merupakan script index.php sebagai halaman pertama dari blog tersebut

 

Halaman http://127.0.0.1/blog/admin_login.php

script untuk halaman admin.php

script untuk halaman login dengan admin_login.php

Pada database kamjar terdapat 2 tabel yaitu post dan user, user sendiri terdiri dari 2 username dan password. Disana dapat terlihat passwor yang tidak terenkripsi

Skenario ini masuk sebagai user csi dan password testing

Login dengan menggunakan user dan password yang telah disediakan oleh database

Proses SQL Injection

Iterasi 1

Mengetahui username dan password

select * from user where username = ‘csi’ and password = ‘testing’

Iterasi 2

Mengetahui username, tapi tidak mengetahui password

 

Karena passwordnya tidak sesuai maka bernilai 0, maka akan memberikan inputan usernamat atau password salah!

Teknik dengan menggunakan komentar pada SQL yaitu ‘– ‘. dash dash space

select * from user where username = ‘csi’–

 

Iterasi 3

Tidak mengetahui usernama dan password

select * from user where username = ‘abc’ or 1=1

Pada halaman login

abc’ or 1=1 —

Solusi

Jangan pernah memasukkan input user kedalam query tanpa di filter terlebih dahulu, ada berbagai macam cara, berikut merupakan salah satu tekniknya

$username = mysqli_real_escape_string ($conn, $_POST[‘username’]);    

$password = mysqli_real_escape_string ($conn, $_POST[‘password’]);

Selamat mencoba, semoga berhasil 

Jika tertarik tentang keamanan web security tentang cross site scripting dapat dipelajari https://miqbal.staff.telkomuniversity.ac.id/teknik-cross-site-scripting/

Ref : [1][2]