Belajar SQL Injection dan cara pencegahannya

by | Mar 24, 2022 | Blog, Hacking Lab, Pentest Tools | 0 comments


apa-itu-sql-injection
gambar : https://d2o2utebsixu4k.cloudfront.net/

Apa itu SQL Injection itu?

Sebelum Belajar SQL Injection alangkah baiknya kita ketahui terlebih dahulu apa itu SQL Injection ?, Menurut saya sederhananya adalah tidak ada sanitize/filter dalam request user dan sehingga user dapat memasukan kode jahat yang dapat memanipulasi permintaan yang di kirimkan terhadap server.

Belajar SQL Injection dan Cara Kerjanya

Contoh kasus sederhana dengan kode

SELECT * FROM artikel WHERE category = "belajarpentest"

bayangkan saja value “belajarpentest” menggunakan parameter yang di dapatkan dari request user (ex. http://localhost/news.php?cat=belajarpentest) lalu attacker memasukan kode jahat (ex. ” UNION SELECT username,password FROM users — –) maka yang terjadi di backend adalah seperti berikut

SELECT * FROM artikel WHERE category = "belajarpentest" UNION SELECT username,password FROM users -- -

dengan kode itu sistem akan mengembalikan output berisi username dan password di dalam tabel users. dibawah ini tips cara mencegah SQL Injection. Setelah belajar SQL Injection bagaiman cara pencegahannya ?.

Pencegahan

Dalam pencegahan terdapat beberapa cara sehingga kode jahat tidak dapat di suntikan contoh nya seperti memasang waf, memfilter, membatasi panjang input dan lain lain seperti di bawah ini.

Memasang WAF

Dengan memasang Web Application Firewall (WAF) dapat menyaring request yang mengandung serangan di internet seperti sql injection, xss, dan lainya dengan mencocokan query yang masuk dengan daftar query SQL berbahaya yang selalu terupdate. kalian bisa menggunakan layanan seperti cloudflare, akamai, atau sebagainya.

Memfilter input

Dengan memfilter input dapat memvalidasi permintaan pengguna, dalam php bisa menggunakan function berikut

  • is_numeric()
  • mysql_real_escape_string()
  • addslashes()

Membatasi Input

Dengan membatasi jumlah karakter pada kotak pengisian. Misalnya, batasi form nama maksimal 25 karakter. Pembatasan ini mampu mengurangi risiko penulisan kode injeksi SQL pada form pengisian website Anda.

Mematikan Notifikasi Error

Jika website anda masih berada di local atau masih mengembangkan notifikasi error dapat membantu mengetahui error apa dan dimana tapi siapa sangka hacker dapat memastikan kesalahan kode anda dan mengeksploitasi sehingga saya menyarankan untuk mematikan dengan memasukan kode error_reporting(0); pada file php

Mengatur Hak User SQL

Jangan pernah memakai user root jika website telah di gunakan oleh banyak orang, dan setting hak ke low privilege user.

Penutup

Selain bisa membuat suatu karya anda harus memfikirkan suatu hal yang terburuk yang akan terjadi. *fyi banyak kasus terjadi seperti banyak pembobolan website pemerintah atau kebocoran data menggunakan methode ini.

Baca Artikel Lainnya :

0 Comments

Submit a Comment

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