SQL Injector

Tuesday, December 13

Sql injections

apa itu sql injections?
Sql injections adalah salah satu teknik hacking yang memanfaatkan celah keamanan yang terjadi pada lapisan basis data dalam sebuah aplikasi. Cara kerja sql injections adalah dengan memodifikasi perintah sql yang ada di memori aplikasi pengguna.

Penyebab terjadinya sql injections
sql injections terjadi dikarenakan tidak adanya filter terhadap karakter-karakter seperti tanda petik satu ' , karakter double minus –. hal inilah yang menyebabkan suatu aplikasi dapat disisipi oleh perintah-perintah sql yang dimanfaatkan untuk melakukan suatu penyerangan terhadap aplikasi.

Bahaya sql injections
salah satu bahaya yang bisa ditimbulkan dari penyerangan ini adalah seseorang bisa masuk ke dalam sistem tanpa harus memiliki account. Hal ini juga bisa memicu seseorang yang tidak memiliki izin masuk ke dalam sistem untuk merubah, menghapus dan menambahkan data-data yang ada di dalam database. Penyerangan ini juga memungkinkan seseorang untuk mematikan suatu database, sehingga web server tidak bisa mengakses data-data yang ada di dalam database tersebut.

Yang diperlukan untuk melakukan sql injections
  1. browser
  2. sambungan internet
  3. software, contoh software yang digunakan adalah softice

contoh sintaks yang bisa digunakan untuk sql injections
$SQL = “select*from login where username = '$username' and password = '$password'”; (diperoleh dari get dan post variable)
sisipkan perintah OR'=' kedalam password, sehingga akan didapat kode
“select*from login where username = '$username' and password = 'pass' or '='”;
dengan begitu kita sudah bisa meng-inject sebuah sintaks sql hanya dengan menggunakan perintah OR.

Cara mencegah dan mengatasi sql injections
    1. dengan melindungi query sql
    teknik yang bisa diterapkan untuk melindungi query sql adalah dengan cara mengosongkan seluruh input yang diterima dari request object, seperti: Request, Request.Querystring,Request.Form,Request.Cookies dan Request.ServerVariables. Akan tetapi teknik ini sangat bergantung pada RDBMS. RDBMS memiliki sistem yang multiuser, sehingga RDMS menyertakan fitur keamanan untuk mengontrol akses ke/dan penggunaan database.
    2. mengganti pesan error
    cara kedua adalah dengan mengganti pesan error. Hal ini dikarenakan para penyerang bisa memanfaatkan pesan error ini untuk menelusuri jalur penyimpanan database.
    3. batasi permisi
    berikan hak izin hanya pada user yang terotorisasi saja. User harus yakin bahwa data yang ia terima sudah akurat dan tidak melakukan kecerobohan dalam memodifikasinya
    4. sembunyikan atau matikan pesan error yang keluar dari SQL server yang sedang berjalan
    5. jika memungkinkan, matikan fasilitas-fasilitas standar seperti Stored Procedures, Extended Stored Procedures
    6. menggunakan MYSQL_escape_string
cara kerja teknik ini adalah dengan merubah string yang mengandung karakter ' menjadi \'. contohnya SQL infec'tion menjadi SQL infec\tion.
7. melakukan filter terhadap karakter ' dengan memodifikasi php.ini
modifikasi ini dimaksudkan untuk mengaktifkan variable magic_qoutes pada php.ini sehingga secara otomatis karakter ' diubah menjadi karakter \ .

contoh implementasi sql injections
  1. masukkan salah satu dari keyword dibawah ini kedalam mesin pencari google
    “/admin.asp”
    “/login.asp”
    “/logon.asp”
    “/adminlogin.asp”
    “/adminlogon.asp”
    “/admin_login.asp”
    “/admin_logon.asp”
    “/admin/login.asp”
    “/admin/logon.asp”
    (anda bisa menambahkan sendiri keyword sesuai keinginan anda)
  2. kemudian buka salah satu link yang berhasil ditemukan oleh google, kemungkinan hasil pencarian yang ditampilkan adalah sebuah halaman login.
  3. Setelah itu masukkan kode berikut :
    Username : 'or 'a'='a
    Password : 'or 'a'='a
  4. jika anda berhasil, maka kemungkinan anda akan masuk ke dalam halaman admin panel. Di halaman admin panel ini anda bisa menambahkan berita,mengedit user lain dan lain-lain.
  5. Jika cara diatas belum berhasil, coba untuk membuka link lain yang ditampilkan di mesin pencari google.
  6. Banyaknya variasi kode memungkinkan kita untuk bisa mengeksplor kode program, seperti:
    Username : admin
    Password : 'or 'a '=' a
    atau kita juga bisa mengkombinasikan kedua kode tersebut, sehingga bentuk kodenya menjadi:
    'or 0=0 -- ; “or 0=0 -- ; 'or 0=0 #;
  7. jika masih belum berhasil, coba terus terus sampai anda berhasil masuk ke dalam admin panel

0 komentar:

Post a Comment