-->
Search here and hit enter....

Basic SQL Injection for Beginner I

Thumbnail SQLI Part1

Assalamualaikum mamang. Sudah lama blog saya ini tidak update karena kesibukan pribadi di real life. Alhamdulillah pada kesempatan kali ini saya bisa menyisakan waktu untuk menulis kembali. Tema kali ini membahas tentang suatu celah yang sangat berbahaya pada website yaitu SQL Injection. Meskipun celah ini cukup lawas namun beberapa developer acuh tak acuh sehingga sering kali mengabaikan celah ini. Bahkan ketika saya survei banyak website besar yang kena hacking menggunakan metode ini. “Old but gold”.

Mari pahami pengertian SQL Injection. Injeksi SQL atau SQL Injection memiliki makna dan arti yaitu sebuah teknik yang menyalahgunakan sebuah celah keamanan yang terjadi dalam lapisan basis data sebuah aplikasi. Celah ini terjadi ketika masukan pengguna tidak disaring secara benar dari karakter-karakter pelolos bentukan string yang diimbuhkan dalam pernyataan SQL atau masukan pengguna tidak bertipe kuat dan karenanya dijalankan tidak sesuai harapan. Ini sebenarnya adalah sebuah contoh dari sebuah kategori celah keamanan yang lebih umum yang dapat terjadi setiap kali sebuah bahasa pemrograman atau skrip diimbuhkan di dalam bahasa yang lain. (Wikipedia).

Pengertian lain, SQL Injection adalah sebuah aksi hacking yang dilakukan di aplikasi client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client dan juga merupakan teknik mengeksploitasi web aplikasi yang di dalamnya menggunakan database untuk penyimpanan data. SQL Injection bertujuan untuk mengambil informasi-informasi yang sifatnya rahasia seperti username dan password login yang ada di database dengan menggunakan beberapa commandnya.

Penyebab terjadinya SQL Injection
  1. Tidak adanya penanganan terhadap karakter-karakter tanda petik satu ‘ dan juga karakter double minus – -.
  2. Sehingga seorang hacker bisa menyisipkan perintah SQL kedalam suatu parameter maupun suatu Form.
Ruang lingkup SQL Injection

Yang perlu dicari adalah halam-halaman web yang terdapat submit data seperti halaman login dan pencarian. Kadang halaman HTML menggunakan metode POST untuk mengirim parameter ke halaman web yang lain. Jika modelnya seperti ini maka kita harus melihat pada source code karena kita tidak bisa melihat pada URL. Caranya yaitu dengan klik kanan halaman web kemudian pilih view source kemudian cari kode “FORM”.

<FORM action=search.asp method=post><input type=hidden name=login value=oke></FORM> 

Halaman tersebut berarti akan mengirimkan parameter bernama “login” dengan nilai (value)=”oke”. Jika bukan halaman input maka harus mencari halaman yang dibuat dengan bahasa pemrograman internet seperti ASP,JSP,CGI atau PHP kemudian cari spesial URL seperti http://www.target.co.id/product.php?id=7. Ini berarti halaman web PHP dengan parameter “id” yang bernilai “7”.

Ciri-ciri web vuln SQL Injection

  • Cara kita mengetahui apakah web tersebut bisa kita serang menggunakan teknik SQL Injection adalah dengan menambahkan kode/karakter string ‘ (tanda petik satu) atau %27 (url encode) setelah angka/value parameter “id”nya. Contoh: 
    http://www.target.co.id/news.php?id=26'. Jika halaman tersebut menampilkan error maka web tersebut terdapat celah SQL Injection. Berikut beberapa contoh error yang saya ambil dari website securityidiots: 

MySQL Error Style: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'' at line 1

MSSQL ASPX Error: Server Error in '/' Application

MSAccess (Apache PHP) Error: Fatal error: Uncaught exception 'com_exception' with message Source: Microsoft JET Database Engine

Dan masih banyak lagi style error yang lain, halaman blank juga termasuk.

  • Menambahkan comment -- atau --+ atau -- - setelah string ('). Jika web tersebut kembali ketampilan semula sebelum error maka webnya positif terdapat celah SQL Injection. Contoh: http://www.target.co.id/news.php?id=26'-- -

  • Sebenarnya masih banyak kode/karakter untuk mengecek vuln SQL Injection pada website, di antaranya:
Integer Based:
--
-- -
--+-
)-- 
)-- -
)--+-
))--
))-- -
))--+-
%23
%60
%90
and 1=1
and ‘1’=’1
and (1)=(1
php?id=(1)

String Based:

'--
'-- -
'--+-
')-- 
')-- -
')--+-
'))--
'))-- -
'))--+-
'%23
'%60
'%90
'and 1=1
'and ‘1’=’1
'and (1)=(1
'php?id=(1)

String Based Double Quotes:
"--
"-- -
"--+-
")-- 
")-- -
")--+-
"))--
"))-- -
"))--+-
"%23
"%60
"%90
"and 1=1
"and ‘1’=’1
"and (1)=(1
"php?id=(1)

Demikian seputar pengenalan dasar tentang celah SQL Injection pada website. Untuk teknik injeksinya akan saya bahas di part selanjutnya. Akan saya coba praktekkan menggunakan target web agar terlihat jelas proses injeksi supaya bisa kalian terapkan. jadi pantau terus blognya oke!!!
Click to Comments