Anda di halaman 1dari 25

MAKALAH SQL INJECTION

Oleh :
Rizky Ramadhan (201311037)
Grafico dhimas junior (201311018)

PROGRAM STUDI D3 REKAM MDIK DAN INFORMASI KESEHATAN


STIKES YAYASAN RUMAH SAKIT Dr. SOETOMO
SURABAYA
2015
KATA PENGANTAR

Bismillahirahmanirrahim,
Assalamualaikun 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.
Wassalamualaikum warohmatullahi wabarokatuh.

Surabaya 4 Juni 2015.

Penyusun,
BAB I

PENDAHULUAN
1.1 Latar Belakang
Pada saat ini teknologi informasi dan komunikasi atau biasa di sebut dengan TIK, dalam hal
ini khususnya internet berkembang begitu pesatnya seiring dengan perubahan zaman. Hampir di
semua bidang kehidupan masyarakat banyak yang memanfaatkan penggunaan TIK dalam
menjalankan aktifitasnya sehari-hari. Mulai dari bidang ekonomi, sosial, politik, agama,
pendididkan, kesehatan, pemerintahan, perbankan, sistem pertahanan dan keamanan suatu
Negara. Serta dengan percepatan teknologi yang semakin lama semakin dahsyat menjadikan
sebab marterial perubahan yang terus menerus menjadikan suatu Negara dapat mengembangkan
teknologinya yang semakin canggih.
Internet merupakan symbol material embrio masyarakat global. Internet membuat globe dunia,
era informasi ditandai dengan aksesibilitas informasi yang amat tinggi. Dalam era ini, informasi
merupakan komoditi utama yang diperjual belikan sehingga akan muncul berbagai network dan
information company yang akan memperjual belikan berbagai fasilitas bermacam jaringan dan
berbagai basis data informasi tentang berbagai hal yang dapat diakses oleh pengguna dan
pelanggan.
Akan tetapi di balik manfaat-manfaat itu semua,terkadang ada beberapa pihak tertentu yang
menyalahgunakan penggunaan TIK khususnya internet ini. Mereka sengaja masuk kedalam web
suatu instansi/lembaga tertentu kemudian melakukan kejahatan didalamnya.baik itu mencuri data
ataupun mengacaukan data,bahkan tidak sedikit mencuri uang melalui internet seperti
pembobolan nomor pin ATM.
Kejahatan-kejahatan seperti inilah yang disebut sebagai Cybercrime. Banyak jenis dan ragam
cybercrime namun semuanya pada dasarnya sama yakni melakukan tindakan kejahatan di dunia
maya atau internet.
1.2 Maksud dan Tujuan

Adapun maksud dan tujuan dari pembuatan makalah Etika Profesi Teknologi Informasi dan
Komunikasi adalah sebagai berikut :
1. Untuk menambah pola pikir mahasiswa menjadi pribadi yang memiliki wawasan pengetahuan.
2. Untuk menerapkan ilmu pengetahuan yang telah di dapat dalam perkuliahan khususnya mata
kuliah Etika TIK.
3. Untuk mengetahui mengenai cybercrime dan kejahatan apa saja yang dapat dikatakan
cybercrime, penyebab dan faktornya.
4. Untuk mengetahui kasus SQL Injection, penyebab, factor dan penanggulangannya.
5. Untuk mengetahui undang-undang yang dikenakan pada pelaku SQL Injection.
BAB II
TINJAUAN UMUM

2.1 Definisi Cyber Crime


Cybercrime merupakan bentuk-bentuk kejahatan yang timbul karena pemanfaatan teknologi
internet. Beberapa pendapat mengindentikkan cybercrime dengan computer crime. The U.S.
Department of Justice memberikan pengertien computer crime sebagai:
any illegal act requiring knowledge of computer technology for its perpetration,
investigation, or prosecution
Pengertian tersebut identik dengan yang diberikan Organization of European Community
Development, yang mendefinisikan computer crime sebagai:
any illegal, unehtical or unauthorized behavior relating to the automatic processing and/or the
transmission of data.
Adapun Andi Hamzah (1989) dalam tulisannya Aspek-aspek Pidana di Bidang komputer,
mengartikan kejahatan komputer sebagai:
Kejahatan di bidang komputer secara umum dapat diartikan sebagai penggunaan komputer
secara illegal.
Dari beberapa pengertian di atas, secara ringkas dapat dikatakan bahwa cybercrime dapat
didefinisikan sebagai perbuatan melawan hukum yang dilakukan dengan menggunakan internet
yang berbasis pada kecanggihan teknologi komputer dan telekomunikasi.

2.2 Karakteristik Cyber Crime


Selama ini dalam kejahatan konvensional, dikenal adanya dua jenis kejahatan sebagai berikut:
a. Kejahatan kerah biru (blue collar crime)

Kejahatan ini merupakan jenis kejahatan atau tindak kriminal yang dilakukan secara
konvensional seperti misalnya perampokkan, pencurian, pembunuhan dan lain-lain.

b. Kejahatan kerah putih (white collar crime)

Kejahatan jenis ini terbagi dalam empat kelompok kejahatan, yakni kejahatan korporasi,
kejahatan birokrat, malpraktek, dan kejahatan individu.

Cybercrime sendiri sebagai kejahatan yang muncul sebagai akibat adanya komunitas dunia maya
di internet, memiliki karakteristik tersendiri yang berbeda dengan kedua model di atas.
Karakteristik unik dari kejahatan di dunia maya tersebut antara lain menyangkut lima hal berikut:
1. Ruang lingkup kejahatan
2. Sifat kejahatan
3. Pelaku kejahatan
4. Modus Kejahatan
5. Jenis kerugian yang ditimbulkan
2.3 Jenis - Jenis Cyber Crime

Berdasarkan jenis aktifitas yang dilakukannya, cybercrime dapat digolongkan menjadi beberapa
jenis sebagai berikut:

a. Unauthorized Access
Merupakan kejahatan yang terjadi ketika seseorang memasuki atau menyusup ke dalam
suatu sistem jaringan komputer secara tidak sah, tanpa izin, atau tanpa sepengetahuan dari
pemilik sistem jaringan komputer yang dimasukinya. Probing dan port merupakan contoh
kejahatan ini.

b. Illegal Contents
Merupakan kejahatn yang dilakukan dengan memasukkan data atau informasi ke internet
tentang suatu hal yang tidak benar, tidak etis, dan dapat dianggap melanggar hukum atau
menggangu ketertiban umum, contohnya adalah penyebaran pornografi.

c. Penyebaran virus secara sengaja


Penyebaran virus pada umumnya dilakukan dengan menggunakan email. Sering kali orang
yang sistem emailnya terkena virus tidak menyadari hal ini. Virus ini kemudian dikirimkan ke
tempat lain melalui emailnya.

d. Data Forgery
Kejahatan jenis ini dilakukan dengan tujuan memalsukan data pada dokumen-dokumen
penting yang ada di internet. Dokumen-dokumen ini biasanya dimiliki oleh institusi atau
lembaga yang memiliki situs berbasis web database.

e. Cyber Espionage, Sabotage, and Extortion


Cyber Espionage merupakan kejahatan yang memanfaatkan jaringan internet untuk
melakukan kegiatan mata-mata terhadap pihak lain, dengan memasuki sistem jaringan komputer
pihak sasaran. Sabotage and Extortion merupakan jenis kejahatan yang dilakukan dengan
membuat gangguan, perusakan atau penghancuran terhadap suatu data, program komputer atau
sistem jaringan komputer yang terhubung dengan internet.

f. Cyberstalking

Kejahatan jenis ini dilakukan untuk mengganggu atau melecehkan seseorang dengan
memanfaatkan komputer, misalnya menggunakan e-mail dan dilakukan berulang-ulang.
Kejahatan tersebut menyerupai teror yang ditujukan kepada seseorang dengan memanfaatkan
media internet. Hal itu bisa terjadi karena kemudahan dalam membuat email dengan alamat
tertentu tanpa harus menyertakan identitas diri yang sebenarnya.

g. Carding
Carding merupakan kejahatan yang dilakukan untuk mencuri nomor kartu kredit milik orang
lain dan digunakan dalam transaksi perdagangan di internet.
h. Hacking dan Cracker
Istilah hacker biasanya mengacu pada seseorang yang punya minat besar untuk mempelajari
sistem komputer secara detail dan bagaimana meningkatkan kapabilitasnya. Adapun mereka
yang sering melakukan aksi-aksi perusakan di internet lazimnya disebut cracker. Boleh dibilang
cracker ini sebenarnya adalah hacker yang yang memanfaatkan kemampuannya untuk hal-hal
yang negatif. Aktivitas cracking di internet memiliki lingkup yang sangat luas, mulai dari
pembajakan account milik orang lain, pembajakan situs web, probing, menyebarkan virus,
hingga pelumpuhan target sasaran. Tindakan yang terakhir disebut sebagai DoS (Denial Of
Service). Dos attack merupakan serangan yang bertujuan melumpuhkan target (hang, crash)
sehingga tidak dapat memberikan layanan.

i. Cybersquatting and Typosquatting


Cybersquatting merupakan kejahatan yang dilakukan dengan mendaftarkan domain nama
perusahaan orang lain dan kemudian berusaha menjualnya kepada perusahaan tersebut dengan
harga yang lebih mahal. Adapun typosquatting adalah kejahatan dengan membuat domain
plesetan yaitu domain yang mirip dengan nama domain orang lain. Nama tersebut merupakan
nama domain saingan perusahaan.

j. Hijacking
Hijacking merupakan kejahatan melakukan pembajakan hasil karya orang lain. Yang paling
sering terjadi adalah Software Piracy (pembajakan perangkat lunak).

k. Cyber Terorism
Suatu tindakan cybercrime termasuk cyber terorism jika mengancam pemerintah atau
warganegara, termasuk cracking ke situs pemerintah atau militer. Beberapa contoh kasus Cyber
Terorism sebagai berikut :
Ramzi Yousef, dalang penyerangan pertama ke gedung WTC, diketahui menyimpan detail
serangan dalam file yang di enkripsi di laptopnya.
Osama Bin Laden diketahui menggunakan steganography untuk komunikasi jaringannya.
Suatu website yang dinamai Club Hacker Muslim diketahui menuliskan daftar tip untuk
melakukan hacking ke Pentagon.
Seorang hacker yang menyebut dirinya sebagai DoktorNuker diketahui telah kurang lebih lima
tahun melakukan defacing atau mengubah isi halaman web dengan propaganda anti-American,
anti-Israel dan pro-Bin Laden.
2.4 UU ITE Tentang Data Forgery

Pasal 30

1. Setiap Orang dengan sengaja dan tanpa hak atau melawan hukum mengakses Komputer
dan/atau Sistem Elektronik milik orang lain dengan cara apapun.

2. Setiap Orang dengan sengaja dan tanpa hak atau melawan hukum mengakses Komputer
dan/atau Sistem Elektrinik dengan cara apapun dengan tujuan untuk memperoleh
informasi Elektronik dan/atau Dokumen Elektronik.

3. Setiap Orang dengan sengaja dan tanpa hak atau melawan hukum mengakses Komputer
dan/atau Sistem Elektronik dengan cara apapun dengan melanggar, menerobos,
melampaui, atau menjebol sistem pengamanan.

Pasal 35

Setiap orang dengan sengaja dan tanpa hak atau melawan hukum melakukan manipulasi,
penciptaan, perubahan, penghilangan, pengrusakan, informasi Elektronik dan/atau Dokumen
Elektronik dengan tujuan agar Informasi Elektronik dan/atau Dokumen Elektronik tersebut
dianggap seolah-olah data otentik.

Pasal 46

1. Setiap Orang yang memenuhi unsur sebagaimana dimaksud dalam Pasal 30 ayat (1)
dipidana dengan pidana penjara paling lama 6 (enam) tahun dan /atau denda paling
banyak Rp600.000.000,- (enam ratus juta rupiah).

2. Setiap Orang yang memenuhi unsur sebagaimana dimaksud dalam Pasal 30 ayat (2)
dipidana dengan pidana penjara paling lama 7 (tujuh) tahun dan/atau denda paling banyak
Rp700.000.000,- (tujuh ratus juta rupiah).

3. Setiap Orang yang memenuhi unsur sebagaimana dimaksud dalam pasal 30 ayat (3)
dipidana dengan pidana penjara paling lama 8 (delapan) tahun dan/atau denda paling
banyak Rp800.000.000,- (delapan ratus juta rupiah).

Pasal 51
1. Setiap Orang yang memenuhi unsur sebagaimana dimaksud dalam pasal 35 dipidana
dengan pidana penjara paling lama 12 (dua belas) tahun dan/atau denda paling banyak
Rp12.000.000.000,00 (dua belas miliar rupiah)
BAB III
DATA FORGERY DENGAN TEKNIK SQL INJECTION

3.1 Pengertian SQL Injection

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.

3.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. Implementasi
basis data relasional dikenal dengan System/R. 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)[1], 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.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).

3.4 Baris Perintah SQL Injection

1. Pemakaian Double Minus (--)


Tanda ini menunjukkan akhir dari sebuah statement SQL, sehingga perintah
dibelakangnya tidak akan dieksekusi lagi. Sehingga tanda ini berfungsi untuk
mengabaikan sisa query setelah tanda double minus tersebut.
Contoh pemakaian : DROP namatabel;--

2. Pemakaian ORDER BY
Untuk menemukan banyaknya kolom dalam query SELECT . Contoh Syntax :
ORDER BY 1--
ORDER BY 2--
ORDER BY 3--

3. Menggunakan UNION
Perintah UNION Select berfungsi untuk menggabungkan hasil query pertama dan query
kedua. Syntax
UNION SELECT * FROM nama tabel

3.5 Step by Step 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
http://www.gue.com/product.php?id=3

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

3.6 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
3.7 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

TUTORIAL SQL INJECTION

Pengertian SQL Injection


1) SQL injection adalah sebuah aksi hacking yang dilakukan di
aplikasi client
dengan cara memodifikasi perintah SQL yang ada di memori
aplikasi client.
2) SQL Injection merupakan teknik mengeksploitasi web aplikasi
yang didalamnya
menggunakan database untuk penyimpanan data.

Sebab terjadinya SQL Injection


1) Tidak adanya penanganan terhadap karakter - karakter tanda
petik satu dan
juga karakter double minus -- yang menyebabkan suatu aplikasi
dapat disisipi
dengan perintah SQL.
2) Sehingga seorang Hacker menyisipkan perintah SQL kedalam
suatu parameter
maupun suatu form.

Bug SQL Injection berbahaya ?


1) Teknik ini memungkinkan seseorang dapat login kedalam sistem
tanpa harus
memiliki account.
2) Selain itu SQL injection juga memungkinkan seseorang
merubah, menghapus,
maupun menambahkan data-data yang berada didalam database.
3) Bahkan yang lebih berbahaya lagi yaitu mematikan
database itu sendiri,
sehingga tidak bisa memberi layanan kepada web server.

Apa saja yang diperlukan untuk melakukan SQL Injection ?


1) Internet Exploler / Browser
2) PC yang terhubung internet
3) Program atau software seperti softice
Contoh sintaks SQL Injection
Contoh sintak SQL dalam PHP
1) $SQL = select * from login where
username =$username and password
=
$password; , {dari GET atau POST variable }
2) isikan password dengan string or =
3) hasilnya maka SQL akan seperti ini = select * from login
where username
= $username and password=pass or =; , { dengan SQL ini
hasil selection akan selalu TRUE }
4) maka kita bisa inject sintax SQL (dalam hal ini OR) kedalam SQL

Gambar contoh SQL Injection

Contoh sintaks SQL Injection


1) Sintaks SQL string -- setelah nama username
2) Query database awal :

Berubah menjadi :
Contoh sintaks SQL Injection
SQL Injection melalui URL, contohnya :

Penanganan SQL
Injection
1) Merubah script php
2) Menggunakan MySQL_escape_string
3) Pemfilteran karakter dengan memodifikasi php.ini

1. Merubah script php


Contoh script php semula :
$query = "select
id,name,email,password,type,block from user
".
"where email = '$Email' and password =
'$Password'";
$hasil = mySQL_query($query, $id_mySQL);
while($row = mySQL_fetch_row($hasil))
{
$Id = $row[0];
$name = $row[1];
$email = $row[2];
$password
= $row[3];
$type =
$row[4];
$block =
$row[5];
}
if(strcmp($block,
'yes') == 0)
{
echo "<script>alert('Your account has been blocked');
document.location.href='index.php';</script>\n";
exit();
}
else if(!empty($Id) && !empty($name) && !empty($email) && !
empty($password));

Script diatas memungkinkan seseorang dapat login dengan


menyisipkan perintah SQL kedalam form login. Ketika hacker
menyisipkan karakter or = kedalam form email dan password
maka akan terbentuk query sebagai berikut :

Maka dilakukan perubahan script menjadi :


$query = "select
id,name,email,password,type,block from
user". "where email = '$Email'";
$hasil = mySQL_query($query,
$id_mySQL);
while($row =
mySQL_fetch_row($hasil))
{
$Id = $row[0];
$name = $row[1];
$email = $row[2];
$password
= $row[3];
$type =
$row[4];
$block =
$row[5];
}
if(strcmp($block,
'yes') == 0)
{
echo "<script>alert('Your account has
been blocked');
document.location.href='index.php';<
/script>\n";
exit();
}
$pass = md5($Password);
else if((strcmp($Email,$email) == 0) && strcmp($pass,$password) == 0));
2. Menggunakan MySQL_escape_string
Merubah string yang mengandung karakter menjadi \ misal
SQL injection menjadi SQL injec\tion
Contoh : $kar = SQL injection;
$filter =
mySQL_escape_string($kar)
; echoHasil filter : $filter;
Hasilnya :

3. Pemfilteran karakter dengan memodifikasi php.ini


Modifikasi dilakukan dengan mengenablekan variabel
magic_quotes pada php.ini
sehingga menyebabkan string maupun karakter diubah menjadi \
secara otomatis
oleh php
Contoh :
Contoh script yang membatasi karakter yang bisa masukkan :
function validatepassword( input )
good_password_chars =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS
TUVWXYZ" validatepassword = true
for i = 1 to
len( input )
c =
mid( input, i,
1)
if ( InStr( good_password_chars,
c ) = 0 ) then validatepassword
= false
exit function
end if
next
end function

Implementasi SQL Injection


1) Masuk ke google atau browse yg lain
2) Masukkan salah satu
keyword berikut
"/admin.asp"
"/logi
n.asp
"
"/logo
n.asp
"
"/adminlogin.asp"
"/adminlogon.asp"
"/admin_login.asp"
"/admin_logon.asp"
"/admin/admin.asp"
"/admin/login.asp"
"/admin/logon.asp"
{anda bisa menambahi sendiri sesuai keinginan anda}

3) Bukalah salah satu link yang ditemukan oleh google,


kemungkinan Anda akan
menjumpai sebuah halaman login (user name danpassword).
4) Masukkan kode berikut :
User name : ` or `a'='a
Password : ` or `a'='a (termasuk tanda petiknya)
5) Jika berhasil, kemungkinan Anda akan masuk ke admin panel, di
mana Anda
bisa menambahkan berita, mengedit user yang lain,
merubah about,
dan lain-lain. Jika beruntung Anda bisa mendapatkan daftar
kredit card yang
banyak.
6) Jika tidak berhasil, cobalah mencari link yang lain yang
ditemukan oleh google. 7) Banyak variasi kode yang mungkin,
antara lain :
User name : admin
Password : ` or `a'='a
atau bisa dimasukkan ke dua-duanya misal :
or 0=0 -- ; or 0=0 -- ; or 0=0 -- ; or 0=0 # ;
or 0=0 # ; orx=x ; or x=x ; ) or (x=x
8) Cobalah sampai berhasil hingga anda bisa masuk ke admin panel

Cara pencegahan SQL INJECTION


1) Batasi panjang input box (jika memungkinkan),
dengan
cara membatasinya di kode program, jadi si cracker pemula
akan bingung
sejenak melihat input box nya gak bisa diinject dengan perintah
yang panjang.
2) Filter input yang dimasukkan oleh user, terutama
penggunaan tanda kutip
tunggal (Input Validation).
3) Matikan atau sembunyikan pesan-pesan error yang keluar dari
SQL Server yang
berjalan.
4) Matikan fasilitas-fasilitas standar seperti Stored Procedures,
Extended Stored
Procedures jika memungkinkan.
5) Ubah "Startup and run SQL Server" menggunakan low privilege
user di SQL
Server Security tab.
REFERENSI
1) -------------, SQLinjection, (www.BlackAngels.it).
2) -------------, Advanced SQL injection in SQL server
applications,
(www.ngssoftware.com ).
3) -------------, SQL injection walktrough (www.securiteam.com ).
4) BM-100, Hacking hiltonjakarta.com (SQL
Injection), 24 Juli 2005,
(http://www.jasakom.com).
5) Budi Raharjo, Keamanan Sistem Informasi Berbasis Internet, PT
Insan Indonesia &
PT INDOCISC, Jakarta,2002.

Anda mungkin juga menyukai