Sitemap

SQL Injection

5 min readJust now

--

SQL Injection adalah teknik serangan keamanan pada aplikasi berbasis database yang memanfaatkan celah pada cara aplikasi memproses input dari pengguna. Dengan teknik ini, penyerang dapat menyisipkan atau ”Menyuntikkan” kode SQL berbahaya ke dalam querry yang dijalankan oleh database, sehingga dapat mengambil, mengubah, atau menghapus data secara tidak sah.

SQL Injection terjadi ketika input pengguna yang tidak tervalidasi disisipkan langsung ke dalam statement SQL oleh aplikasi.

1. Cara Kerja SQL Injection

Cara kerja serangan SQL Injection secara singkat terjadi dalam tiga tahapan, yaitu:

  1. Hacker mengincar celah keamanan database.
  2. Proses validasi atas SQL Query yang digunakan
  3. Database berhasil diakses.

Sederhananya, teknik ini dijalankan melalui form username yang seharusnya diisi menggunakan karakter saja, tetapi form tersebut bisa diisi dengan karakter lain. Dengan begitu, hacker bisa menyematkan karakter kontrol SQL seperti (:;-,=’) dan kata kunci perintah yang dapat merusak tatanan database. Alhasil, hacker mampu memasukkan kueri SQL Injection dan website telah berhasil diretas.

2. Jenis Serangan SQL Injection

Jenis SQL Injection berdasarkan bagaimana penyerang mendapatkan akses ke data backend dan sejauh mana potensi kerusakan yang mungkin mereka sebabkan terdapat 3 jenis, yaitu :

a. In-band SQL Injection

Jenis serangan SQL Injection ini relatif mudah dipahami oleh para penyerang karena mereka menggunakan saluran komunikasi yang sama untuk meluncurkan serangan dan mendapatkan hasilnya. Terdapat dua variasi sub dalam jenis serngan SQLi ini:

1. Error-bases SQL Injection

Basis data menghasilkan pesan kesalahan sebagai reponse terhadap tindakan penyerang. Penyerang menggunakan informasi yang dihasilkan dari pesan kesalahan ini untuk mempelajari tentang infrastruktur basis data.

2. Union-bases SQL Injection

Penyerang menggunakan operator Union SQL untuk mendapatkan data yang diinginkan dengan menggabungkan beberapa pernyataan SELECT dalam satu respons HTTP.

b. Inferential SQL Injection

Jenis SQL Injection ini melibatkan penyerang menggunakan respons dan pola perilaku dari server setelah mengirimkan muatan data untuk memperoleh pemahaman tentang struktur server. Data tidak langsung ditransfer dari basis data situs web ke penyerang, sehingga penyerang tidak melihat informasi tentang serangan secara langsung (oleh karena itu disebut blind sql injection). Inferential SQL Injection dapat dibagi menjadi dua sub-tipe:

1. Time-Based SQL Injection

Penyerang mengirimkan kueri SQL ke basis data dan membuat basis data menunggu beberapa detik seebelum memberikan respons querry sebagai benar atau salah.

2. Boolean SQL Injection

Penyerang mengirimkan kueri SQL ke basis data dan mengamati respons aplikasi yang menghasilkan benar atau salah.

c. Out-of-band SQL Injection

Jenis Serangan SQL ini terjadi dalam dua skenario:

  1. Ketika penyerang tidak dapat menggunakan saluran yang sama untuk meluncurkan serangan dan memperoleh informasi secara langsung.
  2. Ketika server terlalu lambat atau tidak stabil untuk menjalankan tindakan — tindakan ini.

3. Contoh dan Dampak Serangan SQL Injection

Ada beberapa tipe umum dari SQL Injection, yang efeknya bervariasi tergantung aplikasi yang ditargetkan. Contohnya:

1. Pencurian Informasi

Serangan ini memungkinkan hacker untuk mencuri informasi sensitif dari database, seperti data pribadi pengguna atau informasi keuangan.

2. Otentikasi Bypass

Hacker bisa masuk ke dalam aplikasi dengan hak akses administratif tanpa menggunakan username dan password yang valid.

Get Reyza Maulana Putra’s stories in your inbox

Join Medium for free to get updates from this writer.

3. Compromised Ketersediaan Data

Serangan ini bertujuan untuk menghapus atau merusak data, seperti log atau informasi audit dalam database.

4. Compromised Integritas Data

Hacker bisa mengubah isi database, misalnya dengan melakukan deface pada halaman web atau menyisipkan konten berbahaya.

Peringatan ⚠️

Tulisan ini dibuat hanya untuk tujuan edukasi, riset, dan pembelajaran dalam bidang Cyber Security serta Ethical Hacking. Segala bentuk percobaan, teknik, atau simulasi yang dijelaskan wajib dilakukan di lingkungan yang aman (seperti lab pribadi, sistem virtual, atau jaringan uji coba) dan tidak boleh digunakan pada sistem orang lain tanpa izin resmi.

Instalasi Tools

  1. Langkah pertama dalam percobaan adalah, kita lakukan instalasi terlebih dahulu tools — tools yang diperlukan. Tools pertama adalah uniscan, bisa diinstall dengan menggunakan perintah berikut.

2. Dilanjutkan dengan tools SQL map untuk melakukan injeksi.

Scanning Vulnerabilty

  1. Sebelum melakukan injeksi, terlebih dahulu kita melakukan scaning vulnerabilty dari sebuah webiste yang ingin kita injeksi. Disini, kita lakukan scanning dengan bantuan tools uniscan yang sudah kita install sebelumnya
Press enter or click to view image in full size

2. Pada hasil outputnya, akan muncul sebuah bagian dimana terdapat daftar parameter dan halaman yang berpotensi dapat disuntikkan perintah SQL, bisa membocorkan, memanipulasi, atau merusak data di bagian backend database nya.

Press enter or click to view image in full size

3. Daftar dari parameter dan halaman tersebutlah yang akan kita pakai untuk tools SQL Map.

Proses Injection

  1. Untuk memulai proses injeksi, kita buka tools SQL map dengan menggunakan perintah seperti berikut, yang diikuti dengan halaman yang rentan akan SQL injection hasil dari scanning sebelumnya, dan parameter -–dbs untuk memeriksa nama dari databasenya:
Press enter or click to view image in full size

2. Setelah beberapa saat, akan muncul hasil nama database yang ditemukan oleh tools.

3. Kemudian dari hasil nama database tersebut, akan menjadi acuan kita dalam mencari tabel yang terdapat pada database.

Press enter or click to view image in full size

4. Maka, kita berhasil mendapatkan beberapa tabel yang ada pada database acuart tersebut.

5. Kita juga bisa mengakses dan melihat kolom — kolom yang terdapat pada salah satu tabels tersebut. Misal disini kita ingin memeriksa kolom apa saja yang terdapat pada tabel users.

Press enter or click to view image in full size

6. Dan hasilnya akan muncul semua kolom yang terdapat di tabel users beserta tipe kolom nya.

Press enter or click to view image in full size

7. Kita bahkan juga bisa memeriksa dan melihat isi data yang ada pada tabel tersebut dengan menambahkan opsi dump seperti perintah berikut.

Press enter or click to view image in full size

8. Maka hasilnya akan muncul informasi dan data yang terdapat pada kolom users pada database tersebut.

Press enter or click to view image in full size

--

--

Reyza Maulana Putra
Reyza Maulana Putra

Written by Reyza Maulana Putra

Halo Semuanya! Perkenalkan aku Reyza Maulana Putra, biasa dipanggil Rey. Saat ini, aku adalah seorang mahasiswa Teknik Program Studi Teknik Informatika.