SQL Injection
SQL Injection adalah teknik code injection yang digunakan untuk menyerang aplikasi web tanpa penyaringan atau metode perlindungan lainnya. Jenis serangan ini memungkinkan penggunaan informasi database di server.
SQL Injection adalah teknik injeksi kode yang digunakan untuk menyerang aplikasi berbasis data, di mana SQL statements berbahaya dimasukkan ke dalam kolom entri untuk dieksekusi (misalnya, membuang konten database ke penyerang). SQL Injection harus mengeksploitasi kerentanan keamanan dalam perangkat lunak aplikasi, misalnya, ketika input pengguna salah disaring untuk karakter pelarian literal string yang disematkan dalam pernyataan SQL atau input pengguna tidak diketik dengan kuat dan dieksekusi secara tidak terduga. Injeksi SQL sebagian besar dikenal sebagai vektor serangan untuk situs web tetapi dapat digunakan untuk menyerang semua jenis database SQL.
SQL injection adalah kelemahan yang diterjadi ketika penyerang mampu mengubah Structured Query Language (SQL) di dalam database. SQL injection merupakan salah satu kelemahan keamanan yang sangat mempengaruhi sistem bisnis, karena dapat menyebabkan pembongkaran semua informasi sensitif yang tersimpan dalam sebuah aplikasi database, termasuk informasi yang berguna seperti username, password, nama, alamat, nomor telepon, dan rincian kartu kredit. Dengan mempengaruhi database, penyerang dapat memanfaatkan sintaks, kemampuan, kekuatan dan fleksibilitas dari SQL yang mendukung fungsi database dan fungsi sistem operasi yang hanya dilakukan dalam database
Serangan injeksi SQL memungkinkan penyerang untuk memalsukan identitas, merusak data yang ada, menyebabkan masalah penolakan seperti membatalkan transaksi atau mengubah saldo, memungkinkan pengungkapan lengkap semua data pada sistem, menghancurkan data atau membuatnya tidak tersedia, dan menjadi administrator sistem. server basis data.
Dalam studi 2012, diamati bahwa aplikasi web rata-rata menerima empat kampanye serangan per bulan, dan pengecer menerima serangan dua kali lebih banyak dari industri lain.
SQL Injection merupakan serangan yang juga banyak dilakukan oleh para hacker. Serangan jenis ini menyerang database server untuk mencuri informasi username dan password, mengubah database, dan memasukkan file berbahaya.
Cara kerja serangan ini, yaitu dengan memanfaatkan celah keamanan dan memasukkan perintah SQL ke dalam database server.
SQL sendiri merupakan bahasa pemrograman yang digunakan untuk membuat dan mengolah database. Jika serangan ini berhasil, database website Anda dapat dirusak, diubah, dan disalahgunakan.
Cara Kerja
Aplikasi web menjadi lebih canggih dengan teknis yang kompleks. Sifat aplikasi web dengan desain yang memiliki beragam fitur dan kemampuan web untuk menyusun, memproses, dan menyerbarkan informasi melalui internet atau dari dalam intranet membuat aplikasi web tersebut menjadi target yang populer untuk diserang. Penyebab lain Aplikasi web menjadi target penyerangan adalah karena keamanan jaringan pada pasar teknologi bisa menembus sistem informasi melalui kelemahan networkbased.
SQL injection merupakan serangan dimana kode SQL dimasukkan atau ditambahkan ke dalam aplikasi/user input parameter yang kemudian diteruskan ke SQL server back-end untuk parsing dan eksekusi. Setiap prosedur yang membangun pernyataan SQL berpotensi untuk mudah diserang.
Bentuk injeksi utama SQL terdiri dari penyisipan langsung kode ke dalam parameter yang digabungkan dengan perintah SQL dan kemudian dieksekusi. Serangan langsung dilakukan dengan menyuntikan kode ke dalam string yang ditujukan ke penyimpanan di dalam tabel atau sebagai metadata. String yang tersimpan akhirnya digabungkan ke dalam perintah SQL dinamis untuk dieksekusi. Jika aplikasi web gagal untuk membersihkan paramater dengan benar, maka dilewatkan ke pernyataan SQL yang dibuat secara dinamis, hal ini memungkinkan untuk seorang penyerang untuk mengubah mengubah konstruksi back-end SQL.
Ketika seorang penyerang dapat memodifikasi pernyataan SQL, pernyataan tersebut akan dieksekusi dengan hak yang sama dengan aplikasi pengguna, saat menggunakan server SQL untuk mengeksekusi perintah yang berinteraksi dengan sistem operasi, proses akan berjalan dengan hak akses yang sama dengan komponen yang mengeksekusi perintah (misalnya database server, aplikasi server, atau web server).
Simbol-simbol yang digunakan untuk memodifikasi memiliki banyak jenis, berikut simbol (pattern) yang digunakan untuk memodifikasi pernyataan SQL:
| Daftar Simbol Penyerangan SQL Injection | |||||
|---|---|---|---|---|---|
| ' | " | # | - | -- | '-- |
| --'; | '; | =' | =; | =-- | /x23 |
| \x27 | \x3D \X3B' | \x3D \x27 | \x27\x4F\x52
SELECT * |
\x27\x6F\x72
SELECT * |
'or select' |
| Admin „-- | ';shutdown-- | <>”‟%;(&+ | ' or ' '=' | 'or' 'x'='x | “ or
“x”=”x |
| ') or ('x'='x | 0 or 1=1 | ' or 0=0 -- | “ or 0=0 -- | or 0=0 -- | ' or 0=0 # |
| “ or 0=0 # | or 0=0 # | ' or 1=1 -- | “ or 1=1 -- | ' or '1'='1' -- | “ ' or 1 –' “ |
Efek
Efek yang ditimbulkan dari SQL Injection sangat beragam, berikut adalah beberapa point bahaya dari serangan tersebut:
- SQL Injection memungkinkan seseorang dapat login (masuk) kedalam sebuah sistem tanpa harus memiliki account. Hal ini berlaku baik user biasa maupun admin.
- Dengan SQL Injection pula seseorang bisa menyusup kedalam sebuah basis data sehingga dia dapat merubah, menghapus, atau bahkan menambah data yang terdapat dalam basis data tersebut.
- Bahkan yang lebih dari sekedar mengubah basis data, sang pelaku bisa menanamkan akun yang tidak diketahui. Sehingga apabila sistemnya telah diperbaiki tapi sang pelaku masih memiliki cadangan akun untuk login tanpa harus melakukan SQL Injection lagi.
- Selain itu, pelaku juga bisa menjual data-data pribadi yang dimiliki oleh customer pada website e-commerce seperti nomer rekening dan lain-lain Efek lain dari SQL Injection adalah mematikan basis data itu sendiri sehingga web server tidak dapat memberikan layanan yang baik kepada para pengguna.