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
- browser
- sambungan internet
- 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
- 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)
- kemudian buka salah satu link yang berhasil ditemukan oleh google, kemungkinan hasil pencarian yang ditampilkan adalah sebuah halaman login.
- Setelah itu masukkan kode berikut :Username : 'or 'a'='aPassword : 'or 'a'='a
- 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.
- Jika cara diatas belum berhasil, coba untuk membuka link lain yang ditampilkan di mesin pencari google.
- Banyaknya variasi kode memungkinkan kita untuk bisa mengeksplor kode program, seperti:Username : adminPassword : 'or 'a '=' aatau kita juga bisa mengkombinasikan kedua kode tersebut, sehingga bentuk kodenya menjadi:'or 0=0 -- ; “or 0=0 -- ; 'or 0=0 #;
- jika masih belum berhasil, coba terus terus sampai anda berhasil masuk ke dalam admin panel
0 komentar:
Post a Comment