Apa itu SQL Injection? dan apa saja macamnya

Sebelumnya saya ucapkan selamat datang di blog indosechax. dan saya ucapkan banyak terimakasih kepada Kalian semua yang sudah mendukung saya dan mensupport saya dalam membangun blog ini. dalam kesempatan kali ini saya akan membahas

Macam macam Serangan Sql injection.

Serangan SQL Injection merupakan serangan  aplikasi berbasis data. Seorang hacktivis memanfaatkan celah suatu system Dengan cara memasukan input buatannya mereka. Seorang hacktivis menggunakan metode ini untuk melihat database atau mengganggu interaksi aplikasi database di back-end. Hacktivis mungkin bisa mendapatkan data arbitrary dari aplikasi atau website, mengganggu logikanya, atau menjalankan command pada server database itu sendiri.

Bug sql sendiri Dibagi beberapa tipe ,diantaranya :

1. Union-Based SQL Injection
Union-Based Sql Merupakan tipe serangan SQL Injection yang paling popular untuk saat ini. Jenis serangan ini menggunakan UNION statement, yang merupakan gabungan dari dua statement, untuk mendapatkan data dari database.

2. Error-Based SQL Injection
Error Based Sql adalah Tipe serangan SQL Injection yang paling sederhana, dan satu-satunya kesulitan dari tipe serangan ini adalah hanya dapat berjalan pada Microsoft SQL Server. Metode serangan ini, akan membuat aplikasi menunjukan error ketika mengakses database. Dari error ini seorang hacktivist akan mempelajari informasi sistem seperti database, versi database, sistem operasi, maupun data data penting lainnya.

3. Blind SQL Injection
Blind SQL Injection adalah jenis serangan SQL injection di mana penyerang bisa mendapatkan informasi dari basis data tanpa melihat hasil query secara langsung. Serangan ini terjadi ketika aplikasi web rentan terhadap SQL injection, tetapi aplikasi tidak mengembalikan hasil query langsung kepada pengguna. Sebaliknya, penyerang dapat mengumpulkan informasi melalui respons tidak langsung, seperti pesan kesalahan, kondisi benar/salah, atau perbedaan waktu respons.

Ada dua jenis utama blind SQL injection:

1. Boolean-based Blind SQL Injection

Pada jenis ini, penyerang mengirim query SQL yang menghasilkan perilaku berbeda berdasarkan apakah query tersebut mengembalikan nilai benar (true) atau salah (false). Dengan perbedaan ini, penyerang dapat menyimpulkan apakah kondisi tertentu di dalam basis data benar atau salah.

Contoh: Jika URL berikut rentan:

http://example.com/items.php?id=5

Penyerang mungkin mencoba:

http://example.com/items.php?id=5 AND 1=1  (yang selalu bernilai benar)

Kemudian membandingkannya dengan:

http://example.com/items.php?id=5 AND 1=2  (yang selalu bernilai salah)

Dengan mengamati respons aplikasi terhadap kondisi yang berbeda ini (misalnya, perubahan konten, halaman error, dll.), penyerang dapat menyimpulkan apakah kondisi yang disuntikkan benar atau salah, sehingga memperoleh informasi dari basis data.

2. Time-based Blind SQL Injection

Pada serangan berbasis waktu, penyerang mengirim query SQL yang menyebabkan penundaan respons dari basis data jika suatu kondisi benar. Penyerang kemudian mengukur waktu yang diperlukan oleh server untuk merespons dan menyimpulkan informasi dari penundaan tersebut.

Contoh: Penyerang mungkin mengirim query seperti ini:

http://example.com/items.php?id=5 AND IF(1=1, SLEEP(5), 0)

Jika kondisi (1=1) benar, basis data akan menunda respons selama 5 detik. Jika kondisi salah, respons akan segera dikirim. Dengan mengontrol kondisi ini, penyerang secara perlahan bisa mengekstrak informasi (misalnya, menebak karakter dari sebuah password satu per satu).

Cara Mencegah Blind SQL Injection

  1. Prepared Statements (Query Terparameterisasi): Selalu gunakan query terparameterisasi untuk mencegah SQL injection dengan memisahkan logika SQL dari data.
  2. Validasi Input: Pastikan semua input divalidasi dan dibersihkan sebelum diproses.
  3. Gunakan ORM (Object-Relational Mapping): ORM mengabstraksi kode SQL dan mengurangi risiko SQL injection.
  4. Prinsip Least Privilege: Pastikan pengguna basis data memiliki izin minimal yang diperlukan.
  5. Web Application Firewall (WAF): Gunakan WAF untuk mendeteksi dan memblokir upaya SQL injection.

Blind SQL injection lebih sulit dideteksi dan dieksploitasi karena memerlukan teknik yang lebih canggih daripada SQL injection biasa, tetapi sama berbahayanya jika berhasil dilakukan.

Mungkin masih banyak lagi serangan – serangan sql injection lainnya ,Namun karena kurangnya pengetahuan saya jadi saya hanya dapat menyampaikan 3 tipe serangan yang sering terjadi.

Leave a Reply

Your email address will not be published. Required fields are marked *