CEH Series : Mengenal SQL Injection & Buffer Overflow

Analyzer C|EH & Penetration Testing

5-14-2015 10-54-37 AMSQL Injection dan buffer overflow adalah teknik hacking yang digunakan untuk meng exploit kelemahan didalam suatu aplikasi. Ketika suatu kode program di tulis, tentunya beberapa parameter dipakai untuk membangun aplikasi itu, nah parameter itu bisa jadi mengandung kelemahan yang bisa di exploitasi.

Kesamaaan kedua teknik antara sql ijection dan buffer overflow adalah sama sama digunakan untuk menyerang aplikasi yang akibat “kesalahan pemograman “. Adapun bedanya adalah bahwa SQL Injection digunakan untuk menyerang database , sedangkan buffer overflows bisa digunakan untuk menyerang aplikasi apapun.

Kesamaan lainnya adalah kedua teknik diatas mereka mengirimkan code hacking nya melalui form form yang memiliki user input misalnya guest book, komentar, tanya jawab, admin login, user login.

Keduanya juga disebabkan oleh issue yang sama yaitu invalid parameter yang tidak diverifikasi oleh aplikasi, jika programmer nya tidak mengambil tindakan untuk mem validasi variable yang user masukkan kedalam field variable maka hasilnya bisa sangat serius dan tidak bisa diprediksi.

Baiklah saya akan coba ulas lebih jauh lagi didalam artikel saya, seperti dibawah ini ;

SQL Injection

Sebagai seorang Certified Ethical Hacker penting kiranya untuk tahu definisi SQL Injection dan memahami langkah langah yang di lakukan hacker untuk melakukan suatu SQL Injection, dan tentunya kita mesti faham juga SQL Server Vulnerabilities sebagai counter dari SQL Injection. Maksudnya adalah dengan mengerti vulnerabilitiesnya kita bisa melakukan langkah penanggulangan agar SQL injection ini menjadi gagal.

SQL Injection terjadi saat aplikasi memproses apa yang user masukkan untuk mencreate SQL statetement, misalnya ketika user diminta untuk memasukkan komentar , tanpa memvalidasi inputnya. Input dari user ini kemudian langsung di sent ke web untuk di eksekusi, ketika berhasil di exploitasi maka SQL Injection dapat memberikan akses penyerang akses ke database content, dan hacker bisa mengambil alih control pada server yang meng-hosting- database tersebut. Ini juga bisa mengakibakan hacker memiliki akses remote shell kedalam server.

Impact dari SQL Injection ini tergantung dari dimana vulnerability code itu berada, seberapa mudah vulnerability itu bisa di exploit, dan level akses dari aplikasi ke database. Secara teori SQL Injection bisa berlangsung pada aplikasi jenis apapun asalkan memang berhubungan dengan suatu database, akan tetapi pada umumnya ini digunakan untuk menyerang website, sebab banyak sekali alternative pilihan user input ketika suatu website kemudian di publish ke internet.

Untuk men cek apakah website itu vulnerable terhadap SQL Injection bisa digunakan scanner semacam Acunetix ( www.acunetix.com) untuk versi komersilanya,, atau saya biasa menggunakan tool gratisan semacam netsparker dari www.netspaker.com (untuk instalasi dan penggunaanya akan saya ulas dalam artikel terpisah ).

Sekarang kira kira counter nya seperti apa ? ada beberapa hal yang bisa dilakukan sebagai counter dari SQL Injection antara lain :

  • Meminimalisasi privileges dari user yang akses ke dalam database
  • Menggunakan kombinasi password yang kuat untuk SA dan Administrator.
  • Menolak karakter aneh / karakter tidak biasa
  • Men sanitasi dan mem validasi input.

Buffer Overflows.

Teknik ini adalah cara hacker meng exploit suatu operating sytem atau suatu aplikasi, melalui input dari user, suatu buffer overlflow dapat menyebabkan system mengalami kegagalan dengan melakukan overload pada memory atau meng eksekusi command shell atau arbitrary code pada sasaran. Kejadi ini bisa terjadi akibat kurangnya bounds checking atau kurangnya validasi ukuran / format atau variable sebelum di kirim dan disimpan ke memory.

Ada 2(dua ) jenis buffer overflow yaitu :

  1. Stack Based
  2. Heap Based

Wah apalagi tuh ? Untuk diketahui yang namanya stack dan heap adalah letak dari penyimpanan input dari user variable didalam suatu program yang sedang berjalan. Variable akan disimpan didalam stack atau heap sampai suatu saat diperlukan oleh program. Stack adalah lokasi static di memory page, sedang heap adalah dynamic memory address.

Dibawah ini figure ilustrasi buffer overflows ;1a

Untuk mendeteksi adalanya buffer overflow, seorang hacker melakukan pengiriman data dalam jumlah besar kedalam aplikasi melalui form field pada user dan melihat apa reaksi dari aplikasi tersebut. Apakah ada cara yang lebih mudah ? umumnya hacker menggunakan tools metasploit atau Armitage untuk trial andn error mencari buffer overflows. ( Saya mungkin akan menulisnya pada artikel tersendiri caranya).

Counter nya bagaimana ?

  • Lakukan sanitasi pada variable user input field , misalnya username, password, forgotten password.
  • Lakukan pembatasan panjangnya input user.

Demikian artikel saya mengenail SQL Injection dan Buffer Overflow, semoga bisa memberikan bermanfaat, keep tune di https://edysusanto.com untuk artikel lainnya.

Salam Share !


Referensi :

http://unixwiz.net/techtips/sql-injection.html

https://www.netsparker.com/communityedition/

CEH Study Guide/Kimberly Graves