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).
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
0 komentar