SQL Injection adalah teknik serangan yang memanfaatkan celah keamanan dalam aplikasi web dengan menyisipkan kode SQL berbahaya ke dalam input aplikasi yang kemudian dieksekusi oleh database. Ini memungkinkan penyerang untuk mengakses, mengubah, atau menghapus data sensitif di database.
SQL Injection itu cukup sederhana. Ketika kamu memasukkan data ke dalam sebuah formulir di website, data tersebut akan dikirim ke server dan biasanya akan dimasukkan ke dalam sebuah query SQL. Jika aplikasi tidak memvalidasi input pengguna dengan benar, hacker bisa menyuntikkan kode SQL yang berbahaya ke dalam query tersebut.

A1.Contoh serangan SQL injection 

A.Ekstrak Data

    https://target.id/?id=1' UNION SELECT 1,username,password FROM users--

     -- Query hasil:

    SELECT * FROM articles WHERE id = '1' UNION SELECT 1,username,password FROM users--'

B.Bypass Login

   Username: admin', 'or 1=1'

  Password: or 1=1

  -- Query yang dieksekusi:

   SELECT * FROM users WHERE username = 'admin' --' AND password = '[hash]'

C.Defacement 

 SQL injection bisa digunakan hacker defacement untuk melakukan defacement atau pengubahan Halam website secara paksa dengan cara menemukan username dan password.

D.Pencurian Informasi

Serangan ini memungkinkan menyerang untuk mendapatkan, baik secara Langsung maupun tidak langsung informasi-informasi sensitif di dalam database.

E.sosial engineering 

Dari kebocoran data dari SQL injection bisa menjadi bahan hacker untuk melakukan sosial engineering penipuan digital (scammer).

B2. Jenis SQL injection 

A.Error-based SQLi

SQLi berbasis kesalahan adalah teknik SQL Injection in-band yang mengandalkan pesan kesalahan yang diberikan oleh server database untuk memperoleh informasi tentang struktur database. Dalam beberapa kasus, injeksi SQL berbasis kesalahan saja sudah cukup bagi penyerang untuk menghitung seluruh database 

B.Boolean-based (Blind) SQLi

adalah salah satu jenis serangan SQL Injection di mana hasil dari query SQL tidak ditampilkan secara langsung, tetapi penyerang masih bisa menebak kondisi logika dari sistem berdasarkan respons aplikasi.

C.Time-based (Blind) SQLi

Time-based Blind SQL Injection adalah teknik serangan yang digunakan untuk menguji dan mengeksploitasi kerentanan dalam database ketika tidak ada cara langsung untuk mengambil informasi dari server. Serangan ini bekerja dengan menyuntikkan segmen SQL yang mengandung fungsi tertentu atau kueri berat yang menyebabkan penundaan waktu. Berdasarkan waktu respons dari server, penyerang dapat menyimpulkan informasi tentang database yang ditargetkan

D.Union-based SQLi

Union-based SQL Injection adalah teknik serangan yang memanfaatkan operator UNION dalam SQL untuk menggabungkan beberapa pernyataan SELECT dan mendapatkan data dari tabel lain dalam database. Serangan ini terjadi ketika aplikasi rentan terhadap SQL Injection dan hasil kueri dikembalikan dalam respons aplikasi.

E.Out-of-band SQLi

adalah teknik serangan SQL Injection di mana penyerang mengekstrak data dari database menggunakan saluran komunikasi yang berbeda dari aplikasi web yang diserang. Berbeda dengan teknik lain seperti Union-based atau Blind SQL Injection, metode ini tidak bergantung pada respons langsung dari server web, melainkan menggunakan mekanisme lain seperti DNS queries atau HTTP requests untuk mengirimkan data yang berhasil diekstrak



C3. Cara mengatasi SQL injection 

A.Parameterized Query

Parameterized Query adalah metode dimana sebuah kueri database bahasa SQL menggunakan placeholder atau parameter untuk nilai input yang akan dimasukkan. Parameter ini kemudian diisi dengan nilai-nilai pada saat eksekusi kueri. Hal ini membantu mencegah SQL injection dan meningkatkan keamanan dan efisiensi aplikasi.

B. Web Application Firewall (WAF)

adalah sistem keamanan yang dirancang khusus untuk melindungi aplikasi web dari berbagai serangan siber, seperti injeksi SQL, Cross-Site Scripting (XSS), dan Distributed Denial of Service.

Contoh waf terkenal. Cloudfare,akamai,F5 BIG-IP,

C.Validasi Input

Pastikan input yang bisa sistem terima harus melalui proses validasi dengan benar dan runtut. Terutama memblokir karakter yang tidak penting untuk memastikan data yang pengguna masukkan sesuai dengan format yang Anda mau.

D.Database Hardening

Metode Ini melibatkan tindakan seperti membatasi akses, mengkonfigurasi sistem operasi, dan menggunakan enkripsi untuk meminimalkan risiko serangan. 


D4. kerugian SQL injection 
*Pencurian Data
*Pengrusakan Data
*Pengambilalihan Website(defacement)
*Penurunan Reputasi
*Ancaman keamanan apabila data tersebut data militer

E5.kesimpulan
keamanan aplikasi web yang paling berbahaya dan umum terjadi. Kerentanan ini terjadi ketika input pengguna tidak divalidasi atau disanitasi dengan benar, sehingga memungkinkan penyerang untuk menyisipkan perintah SQL berbahaya ke dalam query database.