Apa itu SQL Injection

Posted by Admin on 8 Oktober 2020, 20:41:57 KATEGORI : Database TAG : sql hack, sql injection

SQL Injection adalah salah satu teknik yang menyalahgunakan celah keamanan yang ada di SQL pada lapisan basis data suatu aplikasi. Celah ini terjadi karena input dari user tidak difilter secara benar. Jadi sampai saat ini SQL Injection masih menjadi favorit hacker untuk melakukan serangan pada website.

Contoh mudah teknik SQL Injection melalui form username harusnya username diisi dengan karakter saja, tetapi hacker bisa memasukan query SQL Injection.

Tujuan SQL Injection

Bypass Otentikasi

Jika berhasil masuk kedalam sistem, hacker akan mudah melakukan bypass tanpa perlu menggunakan username dan password yang benar untuk bisa mendapatkan akses. Cukup dengan memasukan script SQL Injection pada form yang masih terbuka.

Pencurian Informasi

Hacker memungkinkan untuk mengambil semua informasi yang ada pada website terutama informasi yang bersifat sensitif seperti username dan password.

Delete Data

SQL Injection memungkinkan untuk hacker menghapus semua data yang tersimpan di database, jika sudah terjadi seperti ini dan tidak ada backup database maka akan sangat berbahaya. Jadi Anda perlu melakukan backup data secara berkala untuk tujuan keamanan data.

Modify Data

Selain menghapus data, hacker dengan mudah mengubah data yang tersimpan di database sehingga menyebabkan data tidak valid. Jadi Anda perlu memiliki backup data jika sewaktu-waktu data dirubah oleh orang yang tidak bertanggung jawab.

Command Execution

Pada beberapa database, Anda sebagai user bisa mengakses operating system menggunakan server database, kalau sudah seperti ini hacker bisa dengan mudah menyerang semua yang ada pada website Anda.

Contoh Serangan SQL Injection

Otentikasi biasa :

SELECT COUNT (*) FROM Users WHERE Username='Ronaldo' AND Password= 'Butterfly'

Otentikasi attacker :

SELECT COUNT (*) FROM Users WHERE Username='qwert' OR 1=1 -- ' AND Password= 'zxcvb'

Input yang masuk ke database seharusnya berisikan username (Ronaldo) dan password (Butterfly). Input yang dimasukkan attacker “qwert” di form email tidaklah penting karena setelah itu ada tanda “or 1=1 — “ dimana artinya setiap input akan selalu dianggap true, karena 1=1 adalah alias dari true. Sementara itu, or adalah kondisi dimana jika ada salah 1 atau lebih dari 2 atau lebih input true maka otentikasi akan dianggap true oleh sistem. Form password pun bisa diisi sesuka hati karena dibelakang tanda “–“ hanya dianggap sebagai syntax comment pada SQL.

Mempelajari SQL sangat penting untuk melakukan serangan SQL Injection, namun ada cukup banyak juga tools serangan otomatis untuk melakukan SQL Injection. Sebagai web programmer kita harus mempelajari bagaimana cara melakukan secure programmer, tidak hanya dalam web programming tetapi juga dalam berbagai bahasa programming lainnya.

Referensi

  • https://gudangssl.id/apa-itu-sql-injection/
  • https://i-3.co.id/cara-mudah-untuk-mengerti-sql-injection/