Buat Akun DQLab & Akses Kelas Data Science Python, R, SQL, Excel GRATIS

Ketahui Jenis SQL Injection Beserta Ciri-Cirinya

Belajar Data Science di Rumah 15-Maret-2023
https://dqlab.id/files/dqlab/cache/83a4f4839ba60824252e02fee8c0093b_x_Thumbnail800.jpeg

Beberapa tahun belakangan ini ramai diperbincangkan kasus cybercrime yang terjadi di dunia maya. Hal ini berkaitan dengan kasus keamanan website yang mulai merajalela. Salah satu ancaman terbesar dan perlu dihindari terkait dengan peretasan website adalah SQL Injection. SQL Injection merupakan teknik unik dimana hacker atau peretas memanfaatkan kesempatan dengan menyalahgunakan celah keamanan yang ada di SQL. 


Biasanya celah ini ditemukan karena input dari user saat memasukkan data ini tidak difilter secara benar dan dalam pembuatannya menggunakan form yang salah. Kalau begini pastinya yang dirugikan siapa? User dong. Apalagi zaman sekarang, praktik hacking melalui dunia maya sudah canggih. Maka dari itu, jangan asal percaya dan cuma-cuma untuk memasukkan data pribadi.


SQL Injection adalah serangan yang menggunakan kode SQL berbahaya untuk memanipulasi database backend untuk mendapatkan informasi yang tidak dimaksudkan untuk ditampilkan. Data tersebut dapat mencakup data sensitif perusahaan, daftar pengguna, atau detail konsumen rahasia. Nah, belakangan ini SQL Injection yang dilakukan hacker banyak variasinya. Motif-motifnya pun harus kamu kenali dengan hati-hati agar kamu tidak terjerumus dalam sistem peretasan dengan menggunakan SQL. 


Mulai dari mencoba untuk memasukkan karakter lain dalam form isian yang disediakan oleh website, permainan huruf pada link yang menghasilkan error pada tautan sesi waktu akses website, menyisipkan karakter seperti (:,-,=’) dan lain-lain. Kira-kira apa saja sih bentuk-bentuk dari SQL Injection? 


1. Error-Based SQL Injection

Variasi peretasan yang pertama adalah Error-Based SQL Injection. Injeksi jenis ini memungkinkan hacker melakukan peretasan dengan mendapatkan informasi tentang struktur database dari pesan kesalahan yang dikeluarkan oleh server database. Dalam keadaan yang jarang terjadi, penyerang dapat menghitung seluruh database hanya menggunakan tipe jenis ini. Berikut adalah contohnya:


Apabila seorang pengguna mengetikkan ?id=1 pada URL dan tekan enter, pengguna akan diarahkan pada halaman login dan diminta untuk memasukkan kata sandi. 


SQL


Tapi, apabila kita ingin mengetik ?id=1’ justru malah error hasilnya

SQL


Nah, error based ini akan membantu database administrator untuk menemukan kueri backend. Apabila kita ingin menghapus kutipan pertama dan terakhir dari yang awalnya “1”LIMIT 0,1 menjadi ‘1”LIMIT 0,1.


Angka 1 adalah input yang kita masukkan dan kutipan tunggal yang ada di depan menunjukkan bahwa input kita dilampirkan dalam tanda kutip tunggal. Maka dari itu, kueri yang dijalankan dalam database sebagai berikut:

SQL

Hal ini menyebabkan bahwa kueri yang diexecute menghasilkan nilai Error. Sekarang kita ingin melakukan pembetulan kueri dengan mencantumkan ?id=1’-+. Berikut adalah hasil outputnya

SQL

Dengan menggunakan kueri ini maka laman akan diarahkan ke halaman login dan memasukkan password. 

SQL


Baca juga : Saatnya Belajar SQL, Kenali Rekomendasi Query SQL Bagi Pemula


2. Union Based SQL Injection

Union-based adalah operasi SQL Injection yang memanfaatkan perintah UNION pada bahasa pemrograman SQL. Seperti yang kita ketahui bahwa UNION SQL dipakai untuk melakukan penggabungan antara dua atau lebih kueri SELECT dan diringkas hanya satu hasil saja dan dikembalikan pada format HTTP sebagai respon dari SQL Injection. Berikut adalah contoh queri yang dilakukan pada UNION SQL dalam Union Based SQL Injection:


SQL


Berdasarkan queri diatas dapat disimpulkan satu output didalamnya terdapat dua kolom termasuk nilai dari kolom EMP yaitu EMP_ID dan EMP_DOJ dan kolom dept yang berisi dept_ID dan dept_name. Dua hal yang perlu kamu perhatikan dalam melakukan operasi UNION adalah

  • Tiap kueri harus mengembalikan jumlah kolom yang sama

  • Tipe data harus sama yaitu tidak berubah setelah eksekusi kueri

Untuk menentukan jumlah kolom yang diperlukan pada operasi UNION SQL, kita coba lihat klausa ORDER BY untuk menentukan apakah Error atau tidak


SQL


Berikut adalah hasilnya:

SQL

Berdasarkan klausa dari ORDER BY ini maka didapatkan bahwa pada iterasi ke-4 ini justru mendapatkan error. 


3. Blind Boolean-based SQL Injection

Selanjutnya, Blind SQL Injection dimana pada variasi ini menggunakan tipe data Boolean yang bekerja dengan mengirimkan kueri SQL ke database dan memaksa aplikasi untuk menghasilkan respons yang berbeda bergantung pada apakah kueri yang diketikkan ini menghasilkan nilai TRUE atau FALSE. Contoh pada SQL Injections, apabila kita mengetikkan ?id=1 pada URL browser maka kueri yang akan dikirim ke database.

SQL

Dari output diatas, ternyata menghasilkan tulisan “you are in” pada bagian webpage seperti pada gambar berikut ini:

SQL

Ketika hacker mencoba untuk menggunakan koma (‘) ?id=1’ untuk memecahkan kueri ini maka ia juga tidak akan dapat menemukan pemberitahuan Error dengan menggunakan metode lain. Selain itu, apabila penyerang mulai mencoba memasukkan kueri yang salah maka teks berwarna kuning akan hilang.


SQL


Baca juga : Catat! Ini 3 Keuntungan Belajar SQL dalam Mengolah Data


4. Blind Time-Based SQL Injection

Pada variasi SQL Injection ini dilakukan dengan mengirimkan SQL query ke dalam database dimana pengguna akan diberikan waktu respons dalam satuan detik. Nantinya waktu respons yang diberikan akan memberi tahu hacker apabila hasil kuerinya BENAR atau SALAH. Hal ini bergantung pada hasilnya, kita akan contohkan dengan menggunakan HTTP.

SQL


Mengingat semakin berkembangnya ancaman kejahatan siber, meningkatkan keamanan website dan aplikasi adalah hal yang penting. Namun sebelum masuk ke tingkat advance tersebut, ada baiknya hal-hal yang bersifat fundamental dari SQL loh.


DQLab juga menyediakan modul SQL yang sangat cocok bagi pemula karena membahas hal-hal yang bersifat fundamental. Agar bisa mengaksesnya, kamu cukup berlangganan untuk menjadi member premium di DQLab. Yuk, tunggu apa lagi? Sekarang giliran mu!


Penulis: Reyvan Maulid

Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Buat Akun


Atau

Sudah punya akun? Login