Minggu, 20 Oktober 2013

makalah SQL Injection




SQL INJECTION
Makalah
yang Disusun untuk Melengkapi Tugas
Mata Kuliah Jaringan Komputer Lanjut
Semester V/2013

Di Susun Oleh :
Kelompok: III
Agus fajar (03114093)
I gede wiguna merta (03114096)
Abdul razak (03114083)
Hermila A (03114127)
Nurlina (03114078)

Sistem Informasi
Sekolah Tinggi Manajemen Informatika dan Komputer
STMIK Profesional
Makassar
2013
 


KATA PENGANTAR

Bismillahirahmanirrahim,
Assalamu’alaikun warohatullahi wabarokatuh,
Puji dan syukur kita panjatkan atas kehadirat Allah SWT, atas rahmat kesehatan dan kesempatan serta semangat yang senantiasa diberikan kepada kami selaku Penyusun makalah ini, karena dengan rahmat-NYA lah kami bisa menyelesaikan makalah yang di amanahkan oleh dosen kepada kelompok kami tepat sesuai waktu yang ditentukan, adapun judul makalah yang kami susun yaitu “SQL Injection”.
Kami sangat menyadari, jika dalam penyusunan makalah ini masih belum sempurna dan tentunya masih membutuhkan banyak perbaikan, oleh karena itu masukan yang bersifat membangun dari pembaca sangat kami harapkan sebagai referensi untuk perbaikan pada penyusunan makalah kami selanjutnya. Kami sangat berharap melalui makalah ini, semoga kita bisa memahami apa itu SQL Injection, mudah-mudahan makalah ini dapat bermanfaat kepada pembaca dan terutama kami selaku penulis.
Wassalamu’alaikum warohmatullahi wabarokatuh.

Makassar, 17 oktober 2013.


Penyusun,

PEMBAHASAN
1.             Pengertian SQL injection
SQL injection adalah jenis aksi hacking pada keamanan komputer di mana seorang penyerang bisa mendapatkan akses ke basis data di dalam sistem. SQL Injection yaitu serangan yang mirip dengan serangan XSS dalam bahwa penyerang memanfaatkan aplikasi vektor dan juga dengan Common dalam serangan XSS.
SQL injection merupakan salah satu kelemahan yang paling dahsyat untuk dampak bisnis, karena dapat menyebabkan pembongkaran semua informasi yang sensitif yang tersimpan dalam sebuah aplikasi database, termasuk informasi berguna seperti username, password, nama, alamat, nomor telepon, dan rincian kartu kredit. Jadi SQL injection adalah kelemahan yang diterjadi ketika penyerang mampu mengubah Structured Query Language (SQL) di dalam database. Dengan mempengaruhi database, penyerang dapat memanfaatkan sintaks dan kemampuan dari SQL itu sendiri, serta kekuatan dan fleksibilitas yang mendukung fungsi database dan fungsi sistem operasi yang hanya dilakukan dalam database.

2.         Sejarah SQL Injection

            Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama EF Codd yang membahas tentang ide pembuatan basis data relasional pada bulan Juni1970. Artikel ini juga membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language). Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL.
Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis data. Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992. Versi terakhir dikenal dengan SQL92.
Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan implementasi mereferensi pada SQL92. Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini disebabkan masing-masing server memiliki dialek masing-masing. Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD), namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.

3.         Cara Kerja SQL Injection

Aplikasi web menjadi lebih canggih dan semakin teknis yang kompleks. Mulai dari internet dinamis dan portal intranet, seperti e-commerce dan pasangan extranet, untuk HTTP dikirimkan oleh aplikasi perusahaan seperti sistem manajemen dokumen dan ERP aplikasi. Sifat aplikasi web dengan desain yang beragam fitur dan kemampuan web tersebut untuk menyusun, memproses, dan menyerbarkan informasi melalui internet atau dari dalam intranet membuat aplikasi web tersebut menjadi target yang populer untu diserang.
Aplikasi web menjadi target penyerangan juga disebabkan karena keamanan jaringan pada pasar teknologi telah jatuh tempo dan ada sedikit peluang untuk menembus sistem informasi melalui kelemahan networkbased, hacker semakin banyak yang berpindah fokus mereka untuk mencoba mengkompromi aplikasi tersebut.
SQL injection merupakan serangan dimana kode SQL dimasukkan atau ditambahkan ke dalam aplikasi/ user input parameter yang kemudian diteruskan ke SQL server back-end untuk parsing dan eksekusi. Setiap prosedur yang membangun pernyataan SQL berpotensi untuk mudah terserang. Bentuk injeksi utama SQL terdiri dari penyisipan langsung kode ke dalam parameter yang digabungkan dengan perintah SQL dan kemudian dieksekusi. Sebuah serangan langsung paling sedikit menyuntikan kode ke dalam string yang ditujukan ke penyimpanan di dalam tabel atau sebagai metadata. Ketika string yang tersimpan akhirnya digabungkan ke dalam perintah SQL dinamis, kode tersebut akan dieksekusi.  Ketika aplikasi web gagal untuk membersihkan paramater dengan benar dilewatkan ke pernyataan SQL yang dibuat secara dinamis (bahkan ketika menggunakan teknik parameterisasi)  ini memungkinkan untuk seorang penyerang  untuk mengubah mengubah konstruksi back-end SQL.
   Ketika seorang penyerang dapat memodifikasi pernyataan SQL, pernyataan tersebut akan dieksekusi dengan hak yang sama dengan aplikasi pengguna, saat menggunakan server SQL untuk mengeksekusi perintah yang berinteraksi dengan sistem operasi, proses akan berjalan dengan hak akses yang sama dengan komponen yang mengeksekusi perintah (misalnya database server, aplikasi server, atau web server).

4.             Langkah-langkah SQL Injection
1.             Tes Vulnerabilitas
Pengujian atau tes ini perlu dilakukan untuk mengetahui apakah sebuah situs web memiliki celah keamanan atau tidak untuk dilakukan SQL Injection.
     Salah satu karakter yang sering digunakan untuk melakukan vulnerabilitas adalah pemakaian karakter kutip tunggal (‘). Sebagai contoh misal situs web target adalah
Maka untuk melakukan pengujian, penulisan kutip dituliskan setelah angka 3.
2.             Menentukan Jumlah Kolom
Penentuan jumlah kolom ini perlu dilakukan karena kita perlu mengetahui kolom mana dari sebuah tabel yang bisa dimanfaatkan. Hal ini bertujuan supaya kita bisa memasukkan perintah SQL Injection pada lokasi yang tepat. Sebab kalau kita memasukkan di tempat yang salah maka kita tidak akan memperoleh apapun. Untuk melakukan hal ini agak bersifat “trial and error”, dimana perintah yang digunakan adalah ORDER BY.
3.             Mencari Kolom yang Vunerable
Selanjutnya adalah mencari kolom yang memiliki celah untuk dilakukan SQL Injection. Istilah lainnya adalah angka error.
4.             Menentukan Nama Database
Pada dasarnya ini bukanlah sesuatu yang penting tapi akan lebih baik agar bisa dimanfaatkan untuk kepentingan lain
5.             Mencari Nama Kolom
6.             Menampilkan Isi data

5.             Mencegah SQL Injection
1.             Batasi panjang input box dengan cara membatasi di kode program
2.             Administrator web haruslah tegas menolak user yang menginput karakter selain abjad dan angka
3.             Untuk nilai numerik, konversilah menjadi integer
4.             Filter input yang dimasukkan user
5.             Jika memungkinkan, buatlah daftar karakter yang boleh digunakan
6.             Batasi karakter yang boleh diinput oleh pengunjung situs web anda
7.             Matikan atau sembunyikan pesan – pesan error yang keluar dari SQL Server yang berjalan
8.             Kalau bisa, hilangkan show error mysql
9.             Bagi yang menggunakan CMS, sangat disarankan untuk mengupdate CMS
6.             Contoh Kasus yang menggunakan SQL Injection
1.             2004 : Dani Firmansyah membobol situs (hacker) di Pusat Tabulasi
Nasional Pemilu Komisi Pemilihan Umum (TNP KPU).
2.             11 Mei 2011 : Andi Kurniawan ( Mahasiswa STIMIK Amikom Jogjakarta ) melakukan tindakan hacking di website Mabes Polri
3.             Februari 2002 : Jeremiah Jacks membobol guess.com .
4.             Juli 2008 : Kaspersky Malaysia telah dibobol oleh seseorang dari Turki yang dikenal sebagai m0sted.
5.             November 2008 :British Royal Navy website telah dibobol oleh Seseorang Rumania dengan Code Name TinKode
6.             5 Februari 2011 : HBGary telah dirusak oleh group hacker yang menamakan diri LulzSec.
7.      Contoh script SQL Injection



PENUTUP
1.      Kesimpulan
2.      Saran 
Read more