APLIKASI WEB VULNERABILITY SCANNER UNTUK SERANGAN SQL INJECTION MEMANFAATKAN GOOGLE DORK “INURL”.
APLIKASI WEB VULNERABILITY SCANNER UNTUK
SERANGAN SQL INJ ECTION MEMANFAATKAN GOOGLE
DORK “INURL”
TUGAS AKHIR
Oleh :
MASYITHA
0834010155
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
J AWA TIMUR
2012
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
APLIKASI WEB VULNERABILITY SCANNER UNTUK
SERANGAN SQL INJ ECTION MEMANFAATKAN GOOGLE
DORK “INURL”
TUGAS AKHIR
Diajukan Untuk Memenuhi Sebagian Per syar atan
Dalam Memper oleh Gelar Sar jana Komputer
J urusan Teknik Infor matika
Oleh :
MASYITHA
0834010155
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
J AWA TIMUR
2012
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
ABSTRAKSI
Hingga saat ini tindakan penyerangan pada suatu web semakin tinggi. Sering
terlihat di media cetak,dan media elektronik begitu banyak berita yang memuat aksiaksi penyerangan terhadap suatu situs web. Salah satu contoh faktor timbulnya
tindakan hacking adalah kesalahan dalam scripting pembuatan web adalah hal
terbanyak yang dimanfaatkan oleh para attacker, sehingga rata-rata web yang
berhasil diserang melalui lubang ini. Kelemahan-kelemahan scripting yang
ditemukan pada proses vulnerabilities scanning misalnya, SQLi.
Untuk mencegah tindakan tersebut dapat menggunakan jasa perusahaan audit
keamanan web. Dan tentunya akan menghabiskan banyak biaya, untuk menghindari
hal tersebut, dalam proyek akhir ini akan dibangun aplikasi web vulnerability
scanner yang berfungsi untuk mendeteksi suatu kelemahan web terhadap kelemahan
SQLi.
Maka dengan menggunakan aplikasi web vulnerability scanner dapat
dideteksi suatu kelemahan web terhadap kelemahan SQLi dengan lebih dini sehingga
dapat dicegah. Kedepannya aplikasi ini dapat melihat isi dari database website yang
ditarget mempunyai kelemahan SQL Injection.
.
Kata kunci : SQLi ,Web Vulnerability Scanner.
i
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
PEMBUATAN APLIKASI WEB VULNERABILITY SCANNER
TERHADAP KELEMAHAN XSS (Cr oss Site Scr ipting)
MENGGUNAKAN J AVA.
Disu su n O leh :
M O C H AM A D T R I J O K O
NP M . 0534010093
Tela h d isetujui mengikut i Ujia n Ne gara Lisa n
Ge lomb ang I Ta hun A kademik 2010 / 2011
Pemb imbing Ut ama
Pembimbing Pe ndamping
Ac hmad J unaid i, S.Ko m
NPT. 3788110440199
Chr yst ia Aji P, S.Kom,
NPT. 3861 01002961
Mengetahui,
Ketu a Program Studi Sistem Informas i
Universita s Pembangu nan Nasio nal ”Vetera n” J awa T imur
Basu ki Rahmat, S.Si, MT
NPT. 36907060209
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
L E M BAR P E NG E SAH AN
PEMBUATAN APLIKASI WEB VULNERABILITY SCANNER
TERHADAP KELEMAHAN XSS (Cr oss Site Scr ipting)
MENGGUNAKAN J AVA.
Disu su n O leh :
M O C H AM A D T R I J O K O
NP M . 0534010093
Telah dipertahankan di hadapan
dan diterima oleh Tim Penguji Tugas Akhir
Jurusan Teknik Informatika Fakultas Teknologi Industri
Universitas Pembangunan Nasional “Veteran” Jawa Timur
Pada Tanggal Februari 2010
Pembimbing :
Tim Penguji :
1.
1
Achmad Junaid i, S.Kom
N PT. 37811040199
Ir. Edi Purnomo Sasongko, MP
NIP. 196407141988031001
2
2
Chr yst ia A ji P , S.Kom,
NPT. 3861 01002961
Barry Nuqoba, S.Si, M.Kom
3.
Achmad Ju naid i, S.Kom
NPT. 2788110 440199
Mengetahui
Dekan Fakultas Teknologi Industri
Universitas Pembangunan Nasional “Veteran” Jawa Timur
Surabaya
Ir. Sutiyono, MT
NIP. 196007131987031001
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
KATA PENGANTAR
Alhamdulillah, dengan mengucapkan puji dan syukur kehadirat Allah
SWT atas rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas
akhir ini dengan judul “APLIKASI WEB VULNERABILITY SCANNER
UNTUK SERANGAN SQL INJECTION MEMANFAATKAN GOOGLE DORK
”INURL”.
“yang merupakan persyaratan dalam memperoleh gelar Sarjana Komputer di
Universitas Pembangunan Nasional “VETERAN” Jatim.
Penulis mengucapkan terima kasih yang sebesar-besarnya kepada pihakpihak yang telah membantu baik materiil maupun dorongan spirituil untuk
menyelesaikan penulisan tugas akhir ini, terutama kepada:
1. Bapak Prof. Dr. Ir. Teguh Soedarto, MP, selaku Rektor UPN “Veteran” Jatim.
2. Bapak Ir. Sutiyono, MT, selaku DEKAN FTI UPN “VETERAN” Jatim.
3. Ibu Dr.Ir.Ni Ketut Sari, MT selaku Ketua Jurusan Teknik Infomatika UPN
“VETERAN” Jatim.
4. Bapak Hudan Studiawan, S.Kom, M.Kom selaku Dosen Pembimbing yang
telah meluangkan waktu untuk memberikan bimbingan selama proses
pelaksanaan Tugas Akhir penulis.
5. Special to: Orang Tua dan keluarga tercinta atas motivasi dan doanya sehingga
semua yang dikerjakan dapat berjalan lancar.
6. Dosen-dosen Teknik Informatika, staff dan segenap civitas akademika UPN
“VETERAN” Jatim.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
ii
7. My best Friends: JOHN FAMILIEZ (Tini, Lebrina, Elly, Mita, Muji, Arvian,
Awal), MAKCOMM (Fillah, Ika, Tika) dan tak lupa juga untuk seluruh
teman-teman TF angkatan 2008.Tidak lupa penulis ucapkan terima kasih
kepada teman-teman yang tidak dapat disebutkan satu persatu atas segala
bantuannya dalam menyelesaikan Tugas Akhir ini.
Penulis menyadari sepenuhnya masih banyak terdapat kekurangan dalam
penulisan Tugas Akhir ini. Oleh sebab itu kritik serta saran yang membangun dari
pembaca sangat membantu guna perbaikan dan pengembangan di masa yang akan
datang.
Akhirnya dengan ridho Allah penulis berharap semoga Tugas Akhir ini
dapat memberikan manfaat bagi pembaca sekalian terutama mahasiswa di bidang
komputer.
Surabaya, Juni 2012
Penulis
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
iv
DAFTAR ISI
Halaman
HALAMAN JUDUL
LEMBAR PENGESAHAN
LEMBAR PENGESAHAN DAN PERSETUJUAN
KETERANGAN REVISI
MOTTO
ABSTRAKSI……………………………………………………………
i
KATA PENGANTAR .……………………………………………….…
ii
DAFTAR ISI ……………………………………………………………
iv
DAFTAR TABEL ………………………………………………………
vii
DAFTAR GAMBAR ……………………………………………………
viii
BAB I
PENDAHULUAN …………………………………………….
1
1.1
Latar Belakang ………………………………..................
1
1.2
Perumusan Masalah ……………………………………..
2
1.3
Batasan Masalah ………………………………………...
2
1.4
Tujuan …………………………………………………...
2
1.5
Manfaat ………………………..…………………….…..
3
1.6
Metodelogi Penelitian …………………………………...
3
1.7
Sistematika Penelitian …………...…………….…………
4
BAB II TINJAUAN PUSTAKA ……………………………….………. 6
iv
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
2.1
Web …………………………….……………………….
6
2.2
SQL injection ...................................…...……………….
10
2.2.1 Default Setting SQL ………..…............................
11
2.2.2 Mencari Target ........................................................
12
2.2.3 Lokasi SQL Injecksion ............................................ 13
2.3
PHP ……………………………………….......................
14
2.4
MySQL ............................................................................
26
2.5
HTML (Hyper Text Markup Language) ...........................
28
2.5.1 Struktur HTML .......................................................
29
Web Server ........................................................................
30
2.6
2.6.1 Cara Kerja Web Server …………...……………….. 31
2.7
Flowchart ........................................................................... 32
2.8
Google Dork ......................................................................
33
2.9
Java Script .........................................................................
35
2.10 Google Api ........................................................................
37
BAB III PERANCANGAN ..................................................................
40
3.1 Desain Sistem ……….......................................................
41
3.2 Perancangan Sistem ……..................................................
42
3.3 Perancangan Data Input.. .................................................
42
3.4.1 Data Input Web vulnerability Berbasis Online ....
42
3.4 Perancangan Proses ..........................................................
43
3.4.1 Proses Scanning ………………………………...
43
3.5 Perancangan Antar Muka ….………….…..……………..
47
BAB IV IMPLEMENTASI …………………………………..……….
49
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
iv
4.1 Implementasi Sistem …………………………………….
49
BAB V PENGUJIAN DAN ANALISA ………………….……….….
53
5.1 Lingkungan Pengujian …………………………………..
53
5.2 Uji Coba ………………………………..………………..
53
5.2.1 Aplikasi Web Vulnerability Scanner …….…..…..
54
5.2.2 Proses Scanning ………………...……………….
55
5.3 ANALISIS ………………………………………………
63
5.3.1 Analisis Scan SQL Injection ….…………….……
64
BAB VI PENUTUP…………………… ……………………...……….
65
6.1 Kesimpulan……… ……………………………………….
65
6.2 Saran……..……… ……………………………………….
65
DAFTAR PUSTAKA…………………… ……………………...………. 66
vi
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
DAFTAR TABEL
Halaman
Tabel 2.1
Perbandingan Antara Web Statis Dengan Web Dinamis.....
9
Tabel 2.2
Tipe Data Dalam My SQL.. ……………………….…...…
27
Tabel 2.3
Simbol Flowchart …................…………………….…...…
32
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
iv
DAFTAR GAMBAR
Halaman
Gambar 2.1 Data Tipikal Untuk Halaman Web Yang Statis ……...……. 7
Gambar 2.2 Contoh Alur Data Pada Halaman Web Yang Dinamis.…… 10
Gambar 2.3 Contoh Ilustrasi SQLi Pada admin login area .……………. 12
Gambar 2.4 Cara kerja Web Server…………………………………....... 32
Gambar 3.1 Perancangan Sistem Secara Global …………………….….. 41
Gambar 3.2 Diagram Alur Scan SQLi ...................................................... 44
Gambar 3.3 Hasil pencarian pada mesin bing bersarkan inputan
Google dork ”inurl:article.php?id=” ...............................…... 45
Gambar 3.4 Website target belum terinjeksi ...…...................................… 46
Gambar 3.5 Website target sudah terinjeksi ………………....................... 47
Gambar 3.6 Antarmuka Aplikasi WVS.......................................….…….. 48
Gambar 4.1 Tampilan Utama Aplikasi..………………………………….. 50
Gambar 4.2 Tampilan laporan scan sql injection ....................................... 52
Gambar 5.1 Halaman Utama Aplikasi WVS…..................….................... 54
Gambar 5.2 Tampilan awal aplikasi …...........................................…….... 55
Gambar 5.3a Proses Scanning …….............................................................56
Gambar 5.3b Proses Scanning ……......................................…................. 56
Gambar 5.4 Report Scanning ..........................….........................……..... 57
Gambar 5.5 Tampilan Website Sebelum di Injeksi ....................……...... 58
Gambar 5.6 Tampilan website sesudah di injeksi …………………........ 58
Gambar 5.7 Proses scanning Google dork inurl:staff_id= .………......…. 59
viii
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
Gambar 5.8 Laporan scanning Google dork inurl:staff_id=…………….. 60
Gambar 5.9 Tampilan website sebelum di injeksi....................................... 60
Gambar 5.10 Tampilan website sesudah di injeksi........................................ 61
Gambar 5.11 Proses scanning Google dork inurl:gallery.php?id=…………61
Gambar 5.12 Laporan scanning Google dork inurl:gallery.php?id=……… 62
Gambar 5.13 Tampilan website sebelum di injeksi....................................... 63
Gambar 5.14 Tampilan website sesudah di injeksi........................................ 63
Gambar 5.15 Halaman URL yang telah di injeksi......................................... 64
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
iv
BAB I
PENDAHULUAN
1.1
Latae Belakang
Perkembangan dalam dunia maya terjadi sangat pesat. Teknologi baru
dirancang dan diimplementasikan untuk memenuhi kebutuhan pengguna yang
semakin beragam. Teknologi halaman web termasuk didalamnya. Teknologi yang
ada kini telah revolusi menuju ke tingkatan yang berbeda. Halaman web kini tidak
lagi statis namun juga dinamis. Kini halaman web yang dinamis merupakan
pemandangan yang biasa dilihat ketika melakukan surfing menggunakan internet.
Halaman web yang dinamis merupakan teknologi yang memberi perubahan
penyediaan informasi, layanan, dan tampilan secara signifikan. Halaman web
yang dinamis memungkinkan interaksi yang lebih baik antara penyedia layanan
dengan penggunanya. Dengan menggunakan teknologi ini, halaman web akan
terlihat lebih manusiawi. Penyedia layanan dapat menambahkan konten yang
sebelumnya masih merupakan impian belaka.
Dalam computer system security, istilah vulnerability merupakan suatu
kelemahan yang memungkinkan seseorang untuk masuk dan mendapatkan hak
akses ke dalam komputer yang dituju (target). Vulnerability adalah kelemahan
yang dikarenakan kesalahan setting ataupun ketidaktahuan administrator.
(Prayitno Ahmad, 2009)
Hingga saat ini angka kejahatan di dunia maya tetap tinggi dan terus
meningkat. Sebuah penelitian yang dilakukan oleh Corsaire menunjukkan bahwa
sekitar 25% aplikasi berbasis web memiliki celah yang membuatnya jadi rentan
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
1
2
terhadap serangan yang dilakukan oleh para cracker. Corsaire mendasarkan hasil
temuan ini pada penelitian selama enam tahun terakhir.
Dalam menganalisis, Corsaire menggunakan sampel dari perusahaanperusahaan besar di beberapa tempat termasuk Inggris, Australia, Eropa, Asia dan
tentu saja Amerika Serikat. Hasil analisis menunjukkan bahwa meski ada usaha
untuk memperbaiki aplikasi berbasis web ini. Namun setidaknya masih ada sekitar
25% yang memiliki resiko tinggi.
Menurut berita yang dilansir ITNews hari Selasa (09/12/08) disebutkan
bahwa 25% aplikasi yang digolongkan dalam kategori resiko tinggi ini memiliki
celah yang membuat aplikasi tersebut rentan terhadap serangan yang bisa
mengakibatkan pencurian data dan pembobolan jenis lain. Sedangkan 75%
sisanya masih dipecah lagi dalam kategori medium dan low yang artinya masih
memiliki celah namun tak terlalu parah. Berikut merupakan data dari (Joe
McCormack, 2009) tentang statistik serangan terhadap aplikasi Web:
Gambar 1.1 Data Statistik Serangan terhadap Aplikasi Web
Dari Gambar 1.1 diatas diketahui bahwa serangan XSS dan SQL Injection
menempati urutan 2 besar. Para hacker berkonsentrasi melakukan eksploitasi pada
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
3
web-web di internet. Web yang tidak aman memberikan kemudahan akses kepada
hacker untuk memanipulasi informasi dan melakukan aktivitas ilegal dengan
menggunakan situs yang telah diserang. Situs yang menjadi korban dapat
disalahgunakan untuk melakukan aktivitas criminal. Misalnya saja melakukan
phishing, pencurian informasi sensitif milik pengguna, memanen email pengguna
untuk keperluan spamming, dan lain-lain. Dalam kondisi ini, attacker dapat
membuat agar pemilik sah-nya yang bertanggung jawab atas tindak kejahatan
tersebut.
Para hacker telah memiliki banyak daftar serangan yang secara rutin
dilakukan pada situs-situs di internet termasuk SQL Injection. Dan para hacker
selalu memiliki update serangan-serangan terbaru terhadap situs-situs di internet.
Dilatarbelakangi permasalahan di atas, dalam proyek akhir ini dibangun
sebuah aplikasi yang berfungsi sebagai pendeteksi terhadap kelemahan SQL
Injection pada suatu aplikasi web, sehingga dengan bantuan aplikasi tersebut suatu
aplikasi web dapat dideteksi lebih dini terhadap kelemahan SQL Injection.
Selain itu, aplikasi ini juga memberikan info letak kelemahan suatu web
terhadap serangan SQL Injection. Dengan aplikasi ini, pengguna bisa mendeteksi
apakah web memiliki kelemahan SQL Injection atau tidak.
1.2
Rumusan Masalah
Dari latar belakang masalah yang telah dipaparkan, maka akan dibangun
aplikasi web vulnerability scanner untuk serangan SQL Injection memanfaatkan
Google. Adapun beberapa rumusan permasalahan yang ada dalam membangun
aplikasi web vulnerability scanner ini yaitu:
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
4
a) Bagaimana membangun web vulnerability scanner berdasarkan data masukan
dari pengguna untuk web vulnerability scanner berbasis online.
b) Bagaimana mengolah informasi dan menampilkan hasil scanning yang
dibutuhkan oleh pengguna.
1.3
Batasan Masalah
Sedangkan batasan masalah pada proyek akhir ini, antara lain yang
digunakan:
a) Bahasa yang digunakan adalah PHP dan software development yang
digunakan adalah Adobe Macromedia Dreamwaver.
b) Aplikasi web yang dapat dipindai adalah aplikasi web yang dibangun
dengan menggunakan bahasa pemrograman PHP dengan MySQL sebagai
DBMS.
c) Kelemahan yang dibahas adalah SQL Injection.
1.4
Tujuan
Tujuan proyek akhir ini adalah untuk membangun aplikasi web vulnerability
scanner menggunakan PHP. Adapun manfaat dengan dibangunnya aplikasi ini
adalah untuk mendeteksi kelemahan web terhadap serangan SQL Injection.
1.5
Manfaat
Berdasarkan dari latar belakang diatas maka dapat dirumuskan masalah
sebagai berikut:
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
5
a. Membangun web secara secure.
Membuat website dengan tingkat kemanan yang tinggi sehingga tidak
mudah untuk dirusak atau dimasuki oleh pihak – pihak tertentu.
b. Terhindar dari defacer website.
Website bebas dari para perusak tampilan pada website yang telah
dibangun, bahkan menghapus seluruh data yang ada di dalam database.
c. Mendeteksi kelemahan web terhadap serangan SQL Injection.
Mendeteksi salah satu jenis serangan web yang dilakukan dengan
memanfaatkan
kelemahan
pada
suatu
aplikasi
web
sehingga
memungkinkan aplikasi untuk menginjeksikan suatu tag HTML pada
aplikasi web tersebut dikarenakan adanya variabel yang tidak disanitasi
dengan baik.
1.6
Metodologi Penelitian
Dalam pengerjaan proyek akhir ini meliputi langkah-langkah sebagai
berikut:
1. Studi Liter atur
Pada tahap ini dilakukan studi literatur dari beberapa referensi baik itu
dari buku atau internet.
2. Per ancangan Sistem
Pada tahap ini dilakukan perancangan sistem yang akan dibangun,
meliputi perancangan database, perancangan sistem dan pembuatan user
interface.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
6
3. Per siapan Data
Data-data penunjang yang didapatkan berupa suatu kesimpulan, faktafakta dan aturan yang mengatur proses pencarian data yang saling
berhubungan satu sama lain disimpan ke dalam basis data RDBMS
(Relational DataBase Management System) sebagai media penyimpanan.
4. Pengujian dan Analisa
Pengujian dan analisa dimaksudkan untuk mengetahui sejauh mana
sistem yang dibuat pada proyek akhir ini dapat berfungsi sesuai dengan
proses sistem yang diharapkan.
5. Kesimpulan
Dibuat kesimpulan dari pengujian sistem proyek akhir dengan
membandingkan apakah hasilnya seperti yang diharapkan pada tujuan
proyek akhir sebelumnya.
6. Pembuatan Lapor an
Membuat dokumentasi dari semua tahapan proses diatas berupa laporan
yang berisi tentang dasar teori, hasil proyek akhir dan hasil analisis.
1.7
Sistematika Penelitian
Sistematika pembahasan yang akan diuraikan dalam buku laporan proyek
akhir ini terbagi dalam beberapa bab yang akan dibahas sebagai berikut:
BAB I
PENDAHULUAN
Bab ini berisi tentang pendahuluan yang terdiri dari latar belakang,
perumusan masalah, batasan masalah, tujuan dan sasaran,
metodologi, serta sistematika pembahasan dari proyek akhir ini.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
7
BAB II TEORI PENUNJ ANG
Bab ini membahas mengenai teori-teori yang berkaitan dengan
penyelesaian proyek akhir, yang didapatkan dari berbagai macam
buku serta sumber-sumber terkait lainnya yang berhubungan
dengan pembuatan proyek akhir ini.
BAB III PERANCANGAN SISTEM
Bab ini membahas mengenai perancangan sistem, meliputi
perancangan hirarki, perancangan proses, dan perancangan user
interface.
BAB IV IMPLEMENTASI
Bab ini membahas mengenai implementasi sistem.
BAB V UJ I COBA DAN ANALISA
Bab ini menyajikan dan menjelaskan seluruh hasil dan analisa
dalam pembuatan proyek akhir ini dan bagaimana penyelesaian
dari setiap permasalahan error yang terjadi pada sistem operasi
Windows.
BAB VI PENUTUP
Bab ini berisi kesimpulan dari uji coba perangkat lunak, dan saran
untuk pengembangan, perbaikan serta penyempurnaan terhadap
aplikasi yang telah dibuat.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
BAB II
TINJ AUAN PUSTAKA
2.1 Web
Penemu website adalah Sir Timothy John ¨Tim¨ Berners-Lee, sedangkan
website yang tersambung dengan jaringan, pertamakali muncul pada tahun 1991.
Maksud dari Tim ketika membuat website adalah untuk mempermudah tukar
menukar dan memperbarui informasi kepada sesama peneliti di tempat dia
bekerja. Pada tanggal 30 April 1993, menginformasikan bahwa WWW dapat
digunakan secara gratis oleh semua orang.
Sebuah website bisa berupa hasil kerja dari perorangan atau individu, atau
menunjukkan kepemilikan dari sebuah organisasi, perusahaan, dan biasanya
website itu menujukkan beberapa topik khusus, atau kepentingan tertentu. Sebuah
website bisa berisi hyperlink (pranala) yang menghubungkan ke website lain, jadi,
kadangkala perbedaan antara website yang dibuat oleh individu perseorangan
dengan website yang dibuat oleh organisasi bisnis bisa saja tidak kentara. Website
ditulis, atau secara dinamik di konversi menjadi HTML dan diakses melalui
sebuah program software yang biasa disebut dengan web browser, yang dikenal
juga dengan HTTP Client. Halaman web dapat dilihat atau diakses melalui
jaringan komputer dan internet, perangkatnya bisa saja berupa komputer pribadi,
laptop, PDA ataupun telepon selular. Sebuah website dibuat didalam sebuah
sistem komputer yang dikenal dengan server web, juga disebut HTTP Server, dan
pengertian ini juga bisa menunjuk pada software yang dipakai untuk menjalankan
sistem ini, yang kemudian menerima lalu mengirimkan halaman-halaman yang
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
6
7
diperlukan untuk merespon permintaan dari pengguna. Apache adalah piranti
lunak yang biasa digunakan dalam sebuah webserver, kemudian setelah itu adalah
Microsoft Internet Information Services (IIS). (FN Jovan, 2007)
Web mempunyai 2 kategori yaitu:
a. Web statis
Tampilan web yang dilihat ketika melakukan surfing melalui internet
sebenarnya hanyalah file teks biasa. File tersebut terletak pada sebuah server
yang dimiliki oleh penyedia layanan tersebut. File ini dapat diperoleh oleh
pengguna dengan sebuah request. File dengan ekstensi tertentu tersebut
kemudian ditampilkan dengan menggunakan sebuah program interpreter.
Ektensi file yang biasa ditemukan antara lain html, htm, php, asp, cgi dan lain
lain. Untuk lebih jelasnya dapat dilihat oleh pengguna.
Gambar 2.1 Alur data tipikal untuk halaman web yang statis
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
8
Software penerjemah melakukan proses visualisasi berdasarkan perintah yang
terdapat pada file teks yang diperoleh. Kesalahan bahasa pada file teks yang
diterima akan menyebabkan kesalahan pada proses penerjemahan. Software
penerjemah ini lebih dikenal dengan sebutan browser web. Browser web
populer saat ini adalah Firefox, Google Chrome.
b. Web Dinamis
Perbedaan mendasar antara proses penyediaan halaman web statis dengan
proses penyediaan halaman web yang dinamis terletak pada request dan
program penyediaan halaman web pada server yang digunakan. Tabel 2.1
menunjukkan perbedaan tersebut.
Dari Tabel 2.1, dapat disimpulkan bahwa teknologi dynamic web page
memungkinkan halaman web yang mampu beradaptasi masukan pengguna. Untuk
mendukung kemampuan tersebut, server yang menggunakan tekonologi dynamic
web page didukung kemampuan bahasa pemrograman. Isi halaman web yang
dinamis, terdapat pada server, biasanya berisi script pemrograman dalam bahasa
yang biasa terdapat dalam teknologi web seperti JavaScript dan VB. Script
pemrograman ini menerima dan memproses variabel – variabel yang dilakukan
pengguna ketika request dilakukan.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
9
Tabel 2.1 Perbandingan antara web statis dengan web dinamis
Teknologi
Request
Static web page
Informasi berisi halaman Mengirimkan halaman yang
yang diinginkan
Program pada server
diinginkan
Halaman tersebut merupakan
file yang sama dengan yang
terdapat pada server
Dynamic web page
Informasi berisi halaman Mengirimkan halaman yang
yang diinginkan ditambah isinya berdasarkan masukkan
masukkan pengguna
pengguna
Isi halaman yang dikirimkan
dapat berbeda dengan yang
terdapat pada server
Halaman yang dikirimkan oleh server akan berisi informasi yang sangat
tergantung algoritma pemrosesan dari halaman yang terdapat pada server. Gambar
2.2 menunjukkan contoh alur data halaman web yang dinamis. Halaman web yang
dinamis ditunjukkan oleh file helo.asp. Terlihat bahwa file sumber (yang terdapat
pada server) berbeda dengan file yang dikirimkan ke pengguna. (FN Jovan, 2007)
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
10
Gambar 2.2 Contoh alur data pada halaman web yang dinamis
2.2 SQL injection
SQL injection adalah kegiatan menyisipkan perintah SQL kepada suatu SQL
statement yang ada pada aplikasi yang sedang berjalan. Dengan kata lain, SQL
injection ini merupakan suatu teknik pengeksploitasi pada web apilikasi yang
didalamnya menggunakan database untuk penyimpanan datanya. Terjadinya SQL
injection tersebut dikarenakan security atau keamanan pada level aplikasi (dalam
hal ini aplikasi web) masih kurang sempurna. Kurang sempurnanya adalah pada
cara aplikasi menangani inputan yang boleh di proses ke dalam database.
Misalnya pada suatu web yang terdapat fasilitas login, terdapat dua buah
inputan pada umumnya, yaitu username dan password. Jika karakter yang masuk
melalui dua buah inputan tersebut tidak difilter (disaring) dengan baik maka bisa
menimbulkan efek SQL injection, hal ini disebabkan oleh input yang secara sistem
akan menjadi bagian dari kriteria dari suatu perintah SQL di dalam aplikasi web.
Secara garis besar terjadinya SQL injection tersebut adalah sebagai berikut:
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
11
a. Tidak adanya pemfilteran terhadap karakter – karakter tanda petik satu ’ dan
juga karakter double minus -- yang menyebabkan suatu aplikasi dapat disisipi
dengan perintah SQL.
b. Sehingga seorang hacker dapat menyisipkan perintah SQL kedalam suatu
parameter maupun pada text area suatu form.
2.2.1
Default Setting SQL
Seperti yang diketahui bahwa teknik SQL injection ini memungkinkan
seseorang dapat login ke dalam sistem tanpa harus memiliki account. Salah
satunya yaitu default setting SQL. Default setting SQL yang paling berbahaya
adalah menggunakan adminID = sa dan password blank alias (kosong). Apabila
ada direktori sebuah situs yang disitu ada input untuk adminnya maka dimasukkan
id-nya dengan = 'sa' dan password-nya = ' ' maka langsung masuk sebagai admin,
ini jika default setting-nya belum diubah.
Namun ada lagi string yang bisa diinput untuk akses sebagai web admin yaitu
dengan string ' OR 1=1-- apabila ada input web admin berupa user dan password.
Maka apabila di masukan string ' OR 1=1-- di input box user dan masukan foobar
di input box password, maka akan membuat SQL query bingung diakibatkan jadi
SQL Query membacanya sebagai:
T
SELEC
* from users where User ='' or 1=1-- and Password ='foobar'
yang artinya SQL melakukan SELECT semua query dari user yang user-nya ''
(kosong) atau (OR) 1=1 (tr ue) -- (tanda -- adalah mark dari SQL seperti halnya di
C/C++ marknya // atau /*)
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
12
Gambar 2.3 Contoh ilustrasi SQL injection Pada admin login area
Jika diuraikan, logikanya adalah SQL menganggap 1=1 sebagai true sehingga
diartikan kolom password diabaikan karena setelah 1=1 terdapat mark SQL ( -- )
sehingga password itupun diabaikan.
Inti dari injeksi dalam langkah awalnya adalah memaksa keluar sebuah error
page yang berisi informasi struktur database situs itu dan jika ingin melihatnya
harus dilakukan debug. Jadi yang dimasukkan adalah string debugging SQL code,
yaitu ' having 1=1--‘. Ini adalah string yang harus dimasukkan jika ingin melihat
error page dari situs sasaran. Sehingga, dapat dikatakan bahwa teknik ini
memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki
account. Selain itu SQL injection juga memungkinkan seseorang merubah,
menghapus, maupun menambahkan data–data yang berada didalam database.
Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga
tidak bisa memberi layanan kepada web server. (Deris Setiawan, 2005).
2.2.2
Mencar i Tar get
Situs web MS-SQL dengan ASP adalah situs yang paling rentan terhadap
serangan ini. Hal pertama yang dilakukan dalam pencarian target yang sudah tidak
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
13
asing lagi bagi yaitu buka www.google.com, pada kolom keywordnya masukkan
allinur l:co.nz/admin.asp, atau allinur l:/logon.asp, keyword ini dapat di
modifikasi ke berbagai bentuk. Penulisan allinurl perlu dicantumkan, dengan
begitu Google akan segera mencari semua URL dalam sebuah situs yang
mempunyai direktori /admin.asp. maka bisa saja mengganti keyword tersebut
dengan allinur l:.co.id atau net atau or g, or.id, sampai allinurl:.fr /admin.asp
semua tergantung kemauan di dalam mencari target menggunakan Google. Hal
yang terpenting dari semua itu adalah harus diketahui di mana harus memasukkan
string SQL misalnya di member login, user login, dan bahkan dapat pula di search
product dan lainnya. (Deris Setiawan, 2005)
2.2.3
Lokasi SQL injection
Injeksi pada situs target tidak selalu melalui input box. Injeksi juga bisa
dilakukan dengan memasukan string-string SQL di URL situs target. Misalnya ada
sebuah situs www.xxxxxx.com/moreinfo.cfm?ProductID= 245
lalu, ketikkan
string injeksi debuging SQL tadi ke address bar dibelakang url target itu, salah
satu contohnya:
www.xxxxxx.com/moreinfo.cfm?ProductID=245' having 1=1-- atau juga dapat
menghapus nilai produk dari URL tersebut dan ganti dengan debugging codenya,
sebagai contoh:
www.xxxxxx.com/moreinfo?ProductID=' having 1=1--”
Apabila setelah itu akan keluar sebuah error page dari situs itu, ini
menandakan bahwa situs tersebut dapat memberikan informasi tentang struktur
database situs itu. Dari hasil informasi tersebut, maka dapat melakukan serangan
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
14
SQL injection berikutnya. Apabila browser yang digunakan adalah Internet
Explorer, ada sebagian situs yang tidak menampilkan error-nya. Hal ini
dikarenakan opsi Show Friendly HTTP Error Messages diaktifkan. Untuk itu
perlu menonaktifkannya dengan cara menghilangkan tanda centang di kotaknya.
Opsi ini dapat ditemukan di Tools > Inter net Option > Advanced cari opsinya di
bagian browsing lalu hilangkan tanda injeksi pada situs target tidak selalu
melakukan input box. Injeksi juga bisa dilakukan dengan centangnya dan klik
tombol Apply. Sesudah itu apabila menemui error page yang berisi HTTP 500
error - internal server error.
Sebelum mengatur opsi tadi, cukup menekan tombol Refresh, lalu terlihatlah
sudah error-nya. Setelah diketahui struktur database dari situs target, dengan
pengetahuan dasar dari belajar SQL yang dapat menghancurkan database itu
dengan perintah ' dr op
database [nama_database] atau drop
table
[nama_table]. Namun bukan ini yang dicari dalam SQL injection karena tidak
mendapat apa-apa dari string tadi. (Setiawan Deris, 2005)
2.3 PHP
Bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak
dipakai untuk memrogram situs web dinamis, walaupun tidak tertutup
kemungkinan digunakan untuk pemakaian lain. Contoh terkenal dari aplikasi PHP
adalah phpBB dan MediaWiki (software di belakang Wikipedia). PHP juga dapat
dilihat sebagai pilihan lain dari ASP.NET/C#/VB.NET Microsoft, ColdFusion
Macromedia, JSP/Java Sun Microsystems, dan CGI/Perl. Contoh aplikasi lain
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
15
yang lebih kompleks berupa CMS yang dibangun menggunakan PHP adalah
Mambo, Joomla!, Postnuke, Xaraya, dan lain-lain.
Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs
Personal). PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada
waktu itu PHP masih bernama FI (Form Interpreted), yang wujudnya berupa
sekumpulan script yang digunakan untuk mengolah data form dari web.
Selanjutnya
Rasmus merilis
kode
sumber tersebut untuk umum dan
menamakannya PHP/FI. Dengan perilisan kode sumber ini menjadi open source,
maka banyak programmer yang tertarik untuk ikut mengembangkan PHP. Pada
November 1997, dirilis PHP/FI 2.0. Pada rilis ini interpreter PHP sudah
diimplementasikan dalam program C. Dalam rilis ini disertakan juga modulmodul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan.
Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter
PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada Juni 1998,
perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis
tersebut sebagai PHP 3.0 dan singkatan PHP dirubah menjadi akronim berulang
PHP: Hypertext Preprocessing. Pada pertengahan tahun 1999, Zend merilis
interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah
versi PHP yang paling banyak dipakai pada awal abad ke-21. Versi ini banyak
dipakai disebabkan kemampuannya untuk membangun aplikasi web kompleks
tetapi tetap memiliki kecepatan dan stabilitas yang tinggi.
Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter
PHP mengalami perubahan besar. Versi ini juga memasukkan model
pemrograman berorientasi objek ke dalam PHP untuk menjawab perkembangan
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
16
bahasa pemrograman ke arah paradigma berorientasi objek. kelebihan PHP dari
bahasa pemrograman lain:
a. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan
sebuah kompilasi dalam penggunaanya.
b. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai
apache, IIS, Lighttpd, nginx, hingga Xitami dengan konfigurasi yang relatif
mudah.
c. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis dan
developer yang siap membantu dalam pengembangan.
d. Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah
karena memiliki referensi yang banyak.
e. PHP adalah bahasa open source yang dapat digunakan di berbagai mesin
(Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime
melalui console serta juga dapat menjalankan perintah-perintah system.
PHP memiliki 7 tipe data yaitu :
1. Integer
Nilai sebuah data dari sebuah tipe data integer adalah nilai bilangan bulat
tersebut dalam matematika. Representasi data ini merupakan cara
bagaimana nilainya disimpan di dalam memori komputer. Tipe data
integral terbagi menjadi dua buah kategori, baik itu bertanda (signed)
ataupun tidak bertanda (unsigned). Bilangan bulat bertanda mampu
merepresentasikan nilai bilangan bulat negatif, sementara bilangan bulat
tak bertanda hanya mampu merepresentasikan bilangan bulat positif.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
17
Representasi integer positif di dalam komputer sebenarnya adalah untaian
bit, dengan menggunakan sistem bilangan biner. Urutan dari bit-bit
tersebut pun bervariasi, bisa berupa Little Endian ataupun Big Endian.
Selain ukuran, lebar atau ketelitian (presisi) bilangan bulat juga bervariasi,
tergantung jumlah bit yang direpresentasikanya. Bilangan bulat yang
memiliki n bit dapat mengodekan 2 n. Jika tipe bilangan bulat tersebut
adalah bilangan bulat tak bertanda, maka jangkauannya adalah dari 0
hingga 2n-1.
2. Double
Double adalah deklarasi untuk tipe data numerik bilangan pecahan secara
default
3. Boolean
Boolean adalah suatu tipe data yang hanya mempunyai dua nilai. Yaitu
true atau false (benar atau salah). Pada beberapa bahasa pemograman nilai
true bisa digantikan 1 dan nilai false digantikan 0.
4. String
String dalam pemrograman komputer adalah sebuah deret simbol. Tipe
data string adalah tipe data yang digunakan untuk menyimpan barisan
karakter.
5. Object
Object merupakan tipe data yang bisa berupa bilangan, variabel atau
fungsi. Data ini dapat dimasukkan ke dalam skrip program sehingga
meringkas beberapa fungsi dan memperkecil ukuran file.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
18
6. Array
Array adalah suatu tipe data terstruktur yang dapat menyimpan banyak
data dengan suatu nama yang sama dan menempati tempat di memori yang
berurutan (kontigu) serta bertipe data sama pula. Array dapat diakses
berdasarkan indeksnya. Indeks array umumnya dimulai dari 0 dan ada
pula yang dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat
dengan menggunakan perulangan (looping).
7. Null
Null itu artinya kosong, Tapi artian kosong tidak sama dengan string ""
atau string empty.
Kode program PHP menyatu dengan tag-tag HTML dalam satu file. Kode
PHP diawali dengan tag . File yang
berisi tag HTML dan kode PHP ini diberiekstensi .php atau ekstensi lainnya yang
ditetapkan pada Apache atau web server. Berdasarkan ekstensi ini, pada saat file
diakses, server akan tahu bahwa file ini mengandung kode PHP. Server akan
menerjemahkan kode ini dan menghasilkan keluaran dalam bentuk tag HTML
yang akan dikirim ke browser client yang mengakses file tersebut. Sebagai
contoh:
emrograman
P
PHP
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
19
Pada contoh program diatas terdapat satu baris perintah PHP, yaitu
Perintah ini dibuka dengan tag . Perintah PHP dapat
disisipkan disembarang tempat dari file diatas. Setiap baris perintah PHP diakhiri
dengan tanda titik koma (;), tag penutup ?> juga dapat berfungsi sebagai
pengganti titik koma (;), jadi baris perintah diatas dapat juga dituliskan (Abdul Kadir, 2009).
Penggunan cURL pada php
cURL (dibaca: si URL) singkatan dari Client URL dan dikembangkan oleh
Daniel Stenberg pada tahun 1998 sebagai alat bantu command line untuk transfer
files dengan sintaks URL melalui bermacam-macam protokol (FTP, HTTP,
HTTPS, SCP, SFTP, TELNET, LDAP, dsb). Langkah awal menggunakan cURL
dalam PHP adalah menginisialisasi sebuah session (atau disebut juga membuat
cURL resource), yaitu dengan:
Setelah sebuah resource cURL terbentuk, curl_init() akan memberikan penangan
(handle) berupa fungsi-fungsi untuk meset berbagai opsi (curl_setopt()), untuk
mulai menjalankan cURL sesuai dengan opsi yang diset (curl_exec()), dan
kemudian menutup session dari resource yang dibentuk tersebut (curl_close()).
Misal ingin mendapatkan halaman http://gedex.web.id/, maka bisa menggunakan
fungsi curl_setopt():
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
20
Setelah itu bisa mendapatkan halamannya dengan memanggil fungsi curl_exec(),
yang secara otomatis (defaultnya) akan mencetak halaman tersebut.
Untuk membebaskan pemakaian resource sistem, ada baiknya menutup session
dari resource cURL yang telah dibuat dengan fungsi curl_close():
Pada contoh di atas, output halamannya langsung dicetak setelah memanggil
fungsi curl_exec($ch). Agar output dikembalikan dari fungsi curl_exec()
(sehingga bisa ditampung ke sebuah variabel untuk pemrosesan lainnya) tanpa
langsung mencetak, perlu menset CURLOPT_RETURNTRANSFER ke true.
Contohnya:
Pada contoh di atas, halaman web (file HTML) tidak langsung dicetak
setelah pemanggilan curl_exec($ch), tapi diberikan ke variabel $output yang
selanjutnya digunakan untuk mengganti kata ‘gedex’ menjadi kata ‘dini’. Inilah
salah satu opsi yang tersedia dari curl_setopt(). Masih ada banyak lagi opsi
curl_setopt yang tersedia. Tulisan kali ini tidak akan membahas semua opsi yang
tersedia, tetapi hanya sebagian opsi yang menarik dan sering digunakan. Opsi
pertama yang menarik adalah CURL
SERANGAN SQL INJ ECTION MEMANFAATKAN GOOGLE
DORK “INURL”
TUGAS AKHIR
Oleh :
MASYITHA
0834010155
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
J AWA TIMUR
2012
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
APLIKASI WEB VULNERABILITY SCANNER UNTUK
SERANGAN SQL INJ ECTION MEMANFAATKAN GOOGLE
DORK “INURL”
TUGAS AKHIR
Diajukan Untuk Memenuhi Sebagian Per syar atan
Dalam Memper oleh Gelar Sar jana Komputer
J urusan Teknik Infor matika
Oleh :
MASYITHA
0834010155
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
J AWA TIMUR
2012
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
ABSTRAKSI
Hingga saat ini tindakan penyerangan pada suatu web semakin tinggi. Sering
terlihat di media cetak,dan media elektronik begitu banyak berita yang memuat aksiaksi penyerangan terhadap suatu situs web. Salah satu contoh faktor timbulnya
tindakan hacking adalah kesalahan dalam scripting pembuatan web adalah hal
terbanyak yang dimanfaatkan oleh para attacker, sehingga rata-rata web yang
berhasil diserang melalui lubang ini. Kelemahan-kelemahan scripting yang
ditemukan pada proses vulnerabilities scanning misalnya, SQLi.
Untuk mencegah tindakan tersebut dapat menggunakan jasa perusahaan audit
keamanan web. Dan tentunya akan menghabiskan banyak biaya, untuk menghindari
hal tersebut, dalam proyek akhir ini akan dibangun aplikasi web vulnerability
scanner yang berfungsi untuk mendeteksi suatu kelemahan web terhadap kelemahan
SQLi.
Maka dengan menggunakan aplikasi web vulnerability scanner dapat
dideteksi suatu kelemahan web terhadap kelemahan SQLi dengan lebih dini sehingga
dapat dicegah. Kedepannya aplikasi ini dapat melihat isi dari database website yang
ditarget mempunyai kelemahan SQL Injection.
.
Kata kunci : SQLi ,Web Vulnerability Scanner.
i
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
PEMBUATAN APLIKASI WEB VULNERABILITY SCANNER
TERHADAP KELEMAHAN XSS (Cr oss Site Scr ipting)
MENGGUNAKAN J AVA.
Disu su n O leh :
M O C H AM A D T R I J O K O
NP M . 0534010093
Tela h d isetujui mengikut i Ujia n Ne gara Lisa n
Ge lomb ang I Ta hun A kademik 2010 / 2011
Pemb imbing Ut ama
Pembimbing Pe ndamping
Ac hmad J unaid i, S.Ko m
NPT. 3788110440199
Chr yst ia Aji P, S.Kom,
NPT. 3861 01002961
Mengetahui,
Ketu a Program Studi Sistem Informas i
Universita s Pembangu nan Nasio nal ”Vetera n” J awa T imur
Basu ki Rahmat, S.Si, MT
NPT. 36907060209
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
L E M BAR P E NG E SAH AN
PEMBUATAN APLIKASI WEB VULNERABILITY SCANNER
TERHADAP KELEMAHAN XSS (Cr oss Site Scr ipting)
MENGGUNAKAN J AVA.
Disu su n O leh :
M O C H AM A D T R I J O K O
NP M . 0534010093
Telah dipertahankan di hadapan
dan diterima oleh Tim Penguji Tugas Akhir
Jurusan Teknik Informatika Fakultas Teknologi Industri
Universitas Pembangunan Nasional “Veteran” Jawa Timur
Pada Tanggal Februari 2010
Pembimbing :
Tim Penguji :
1.
1
Achmad Junaid i, S.Kom
N PT. 37811040199
Ir. Edi Purnomo Sasongko, MP
NIP. 196407141988031001
2
2
Chr yst ia A ji P , S.Kom,
NPT. 3861 01002961
Barry Nuqoba, S.Si, M.Kom
3.
Achmad Ju naid i, S.Kom
NPT. 2788110 440199
Mengetahui
Dekan Fakultas Teknologi Industri
Universitas Pembangunan Nasional “Veteran” Jawa Timur
Surabaya
Ir. Sutiyono, MT
NIP. 196007131987031001
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
KATA PENGANTAR
Alhamdulillah, dengan mengucapkan puji dan syukur kehadirat Allah
SWT atas rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas
akhir ini dengan judul “APLIKASI WEB VULNERABILITY SCANNER
UNTUK SERANGAN SQL INJECTION MEMANFAATKAN GOOGLE DORK
”INURL”.
“yang merupakan persyaratan dalam memperoleh gelar Sarjana Komputer di
Universitas Pembangunan Nasional “VETERAN” Jatim.
Penulis mengucapkan terima kasih yang sebesar-besarnya kepada pihakpihak yang telah membantu baik materiil maupun dorongan spirituil untuk
menyelesaikan penulisan tugas akhir ini, terutama kepada:
1. Bapak Prof. Dr. Ir. Teguh Soedarto, MP, selaku Rektor UPN “Veteran” Jatim.
2. Bapak Ir. Sutiyono, MT, selaku DEKAN FTI UPN “VETERAN” Jatim.
3. Ibu Dr.Ir.Ni Ketut Sari, MT selaku Ketua Jurusan Teknik Infomatika UPN
“VETERAN” Jatim.
4. Bapak Hudan Studiawan, S.Kom, M.Kom selaku Dosen Pembimbing yang
telah meluangkan waktu untuk memberikan bimbingan selama proses
pelaksanaan Tugas Akhir penulis.
5. Special to: Orang Tua dan keluarga tercinta atas motivasi dan doanya sehingga
semua yang dikerjakan dapat berjalan lancar.
6. Dosen-dosen Teknik Informatika, staff dan segenap civitas akademika UPN
“VETERAN” Jatim.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
ii
7. My best Friends: JOHN FAMILIEZ (Tini, Lebrina, Elly, Mita, Muji, Arvian,
Awal), MAKCOMM (Fillah, Ika, Tika) dan tak lupa juga untuk seluruh
teman-teman TF angkatan 2008.Tidak lupa penulis ucapkan terima kasih
kepada teman-teman yang tidak dapat disebutkan satu persatu atas segala
bantuannya dalam menyelesaikan Tugas Akhir ini.
Penulis menyadari sepenuhnya masih banyak terdapat kekurangan dalam
penulisan Tugas Akhir ini. Oleh sebab itu kritik serta saran yang membangun dari
pembaca sangat membantu guna perbaikan dan pengembangan di masa yang akan
datang.
Akhirnya dengan ridho Allah penulis berharap semoga Tugas Akhir ini
dapat memberikan manfaat bagi pembaca sekalian terutama mahasiswa di bidang
komputer.
Surabaya, Juni 2012
Penulis
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
iv
DAFTAR ISI
Halaman
HALAMAN JUDUL
LEMBAR PENGESAHAN
LEMBAR PENGESAHAN DAN PERSETUJUAN
KETERANGAN REVISI
MOTTO
ABSTRAKSI……………………………………………………………
i
KATA PENGANTAR .……………………………………………….…
ii
DAFTAR ISI ……………………………………………………………
iv
DAFTAR TABEL ………………………………………………………
vii
DAFTAR GAMBAR ……………………………………………………
viii
BAB I
PENDAHULUAN …………………………………………….
1
1.1
Latar Belakang ………………………………..................
1
1.2
Perumusan Masalah ……………………………………..
2
1.3
Batasan Masalah ………………………………………...
2
1.4
Tujuan …………………………………………………...
2
1.5
Manfaat ………………………..…………………….…..
3
1.6
Metodelogi Penelitian …………………………………...
3
1.7
Sistematika Penelitian …………...…………….…………
4
BAB II TINJAUAN PUSTAKA ……………………………….………. 6
iv
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
2.1
Web …………………………….……………………….
6
2.2
SQL injection ...................................…...……………….
10
2.2.1 Default Setting SQL ………..…............................
11
2.2.2 Mencari Target ........................................................
12
2.2.3 Lokasi SQL Injecksion ............................................ 13
2.3
PHP ……………………………………….......................
14
2.4
MySQL ............................................................................
26
2.5
HTML (Hyper Text Markup Language) ...........................
28
2.5.1 Struktur HTML .......................................................
29
Web Server ........................................................................
30
2.6
2.6.1 Cara Kerja Web Server …………...……………….. 31
2.7
Flowchart ........................................................................... 32
2.8
Google Dork ......................................................................
33
2.9
Java Script .........................................................................
35
2.10 Google Api ........................................................................
37
BAB III PERANCANGAN ..................................................................
40
3.1 Desain Sistem ……….......................................................
41
3.2 Perancangan Sistem ……..................................................
42
3.3 Perancangan Data Input.. .................................................
42
3.4.1 Data Input Web vulnerability Berbasis Online ....
42
3.4 Perancangan Proses ..........................................................
43
3.4.1 Proses Scanning ………………………………...
43
3.5 Perancangan Antar Muka ….………….…..……………..
47
BAB IV IMPLEMENTASI …………………………………..……….
49
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
iv
4.1 Implementasi Sistem …………………………………….
49
BAB V PENGUJIAN DAN ANALISA ………………….……….….
53
5.1 Lingkungan Pengujian …………………………………..
53
5.2 Uji Coba ………………………………..………………..
53
5.2.1 Aplikasi Web Vulnerability Scanner …….…..…..
54
5.2.2 Proses Scanning ………………...……………….
55
5.3 ANALISIS ………………………………………………
63
5.3.1 Analisis Scan SQL Injection ….…………….……
64
BAB VI PENUTUP…………………… ……………………...……….
65
6.1 Kesimpulan……… ……………………………………….
65
6.2 Saran……..……… ……………………………………….
65
DAFTAR PUSTAKA…………………… ……………………...………. 66
vi
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
DAFTAR TABEL
Halaman
Tabel 2.1
Perbandingan Antara Web Statis Dengan Web Dinamis.....
9
Tabel 2.2
Tipe Data Dalam My SQL.. ……………………….…...…
27
Tabel 2.3
Simbol Flowchart …................…………………….…...…
32
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
iv
DAFTAR GAMBAR
Halaman
Gambar 2.1 Data Tipikal Untuk Halaman Web Yang Statis ……...……. 7
Gambar 2.2 Contoh Alur Data Pada Halaman Web Yang Dinamis.…… 10
Gambar 2.3 Contoh Ilustrasi SQLi Pada admin login area .……………. 12
Gambar 2.4 Cara kerja Web Server…………………………………....... 32
Gambar 3.1 Perancangan Sistem Secara Global …………………….….. 41
Gambar 3.2 Diagram Alur Scan SQLi ...................................................... 44
Gambar 3.3 Hasil pencarian pada mesin bing bersarkan inputan
Google dork ”inurl:article.php?id=” ...............................…... 45
Gambar 3.4 Website target belum terinjeksi ...…...................................… 46
Gambar 3.5 Website target sudah terinjeksi ………………....................... 47
Gambar 3.6 Antarmuka Aplikasi WVS.......................................….…….. 48
Gambar 4.1 Tampilan Utama Aplikasi..………………………………….. 50
Gambar 4.2 Tampilan laporan scan sql injection ....................................... 52
Gambar 5.1 Halaman Utama Aplikasi WVS…..................….................... 54
Gambar 5.2 Tampilan awal aplikasi …...........................................…….... 55
Gambar 5.3a Proses Scanning …….............................................................56
Gambar 5.3b Proses Scanning ……......................................…................. 56
Gambar 5.4 Report Scanning ..........................….........................……..... 57
Gambar 5.5 Tampilan Website Sebelum di Injeksi ....................……...... 58
Gambar 5.6 Tampilan website sesudah di injeksi …………………........ 58
Gambar 5.7 Proses scanning Google dork inurl:staff_id= .………......…. 59
viii
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
Gambar 5.8 Laporan scanning Google dork inurl:staff_id=…………….. 60
Gambar 5.9 Tampilan website sebelum di injeksi....................................... 60
Gambar 5.10 Tampilan website sesudah di injeksi........................................ 61
Gambar 5.11 Proses scanning Google dork inurl:gallery.php?id=…………61
Gambar 5.12 Laporan scanning Google dork inurl:gallery.php?id=……… 62
Gambar 5.13 Tampilan website sebelum di injeksi....................................... 63
Gambar 5.14 Tampilan website sesudah di injeksi........................................ 63
Gambar 5.15 Halaman URL yang telah di injeksi......................................... 64
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
iv
BAB I
PENDAHULUAN
1.1
Latae Belakang
Perkembangan dalam dunia maya terjadi sangat pesat. Teknologi baru
dirancang dan diimplementasikan untuk memenuhi kebutuhan pengguna yang
semakin beragam. Teknologi halaman web termasuk didalamnya. Teknologi yang
ada kini telah revolusi menuju ke tingkatan yang berbeda. Halaman web kini tidak
lagi statis namun juga dinamis. Kini halaman web yang dinamis merupakan
pemandangan yang biasa dilihat ketika melakukan surfing menggunakan internet.
Halaman web yang dinamis merupakan teknologi yang memberi perubahan
penyediaan informasi, layanan, dan tampilan secara signifikan. Halaman web
yang dinamis memungkinkan interaksi yang lebih baik antara penyedia layanan
dengan penggunanya. Dengan menggunakan teknologi ini, halaman web akan
terlihat lebih manusiawi. Penyedia layanan dapat menambahkan konten yang
sebelumnya masih merupakan impian belaka.
Dalam computer system security, istilah vulnerability merupakan suatu
kelemahan yang memungkinkan seseorang untuk masuk dan mendapatkan hak
akses ke dalam komputer yang dituju (target). Vulnerability adalah kelemahan
yang dikarenakan kesalahan setting ataupun ketidaktahuan administrator.
(Prayitno Ahmad, 2009)
Hingga saat ini angka kejahatan di dunia maya tetap tinggi dan terus
meningkat. Sebuah penelitian yang dilakukan oleh Corsaire menunjukkan bahwa
sekitar 25% aplikasi berbasis web memiliki celah yang membuatnya jadi rentan
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
1
2
terhadap serangan yang dilakukan oleh para cracker. Corsaire mendasarkan hasil
temuan ini pada penelitian selama enam tahun terakhir.
Dalam menganalisis, Corsaire menggunakan sampel dari perusahaanperusahaan besar di beberapa tempat termasuk Inggris, Australia, Eropa, Asia dan
tentu saja Amerika Serikat. Hasil analisis menunjukkan bahwa meski ada usaha
untuk memperbaiki aplikasi berbasis web ini. Namun setidaknya masih ada sekitar
25% yang memiliki resiko tinggi.
Menurut berita yang dilansir ITNews hari Selasa (09/12/08) disebutkan
bahwa 25% aplikasi yang digolongkan dalam kategori resiko tinggi ini memiliki
celah yang membuat aplikasi tersebut rentan terhadap serangan yang bisa
mengakibatkan pencurian data dan pembobolan jenis lain. Sedangkan 75%
sisanya masih dipecah lagi dalam kategori medium dan low yang artinya masih
memiliki celah namun tak terlalu parah. Berikut merupakan data dari (Joe
McCormack, 2009) tentang statistik serangan terhadap aplikasi Web:
Gambar 1.1 Data Statistik Serangan terhadap Aplikasi Web
Dari Gambar 1.1 diatas diketahui bahwa serangan XSS dan SQL Injection
menempati urutan 2 besar. Para hacker berkonsentrasi melakukan eksploitasi pada
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
3
web-web di internet. Web yang tidak aman memberikan kemudahan akses kepada
hacker untuk memanipulasi informasi dan melakukan aktivitas ilegal dengan
menggunakan situs yang telah diserang. Situs yang menjadi korban dapat
disalahgunakan untuk melakukan aktivitas criminal. Misalnya saja melakukan
phishing, pencurian informasi sensitif milik pengguna, memanen email pengguna
untuk keperluan spamming, dan lain-lain. Dalam kondisi ini, attacker dapat
membuat agar pemilik sah-nya yang bertanggung jawab atas tindak kejahatan
tersebut.
Para hacker telah memiliki banyak daftar serangan yang secara rutin
dilakukan pada situs-situs di internet termasuk SQL Injection. Dan para hacker
selalu memiliki update serangan-serangan terbaru terhadap situs-situs di internet.
Dilatarbelakangi permasalahan di atas, dalam proyek akhir ini dibangun
sebuah aplikasi yang berfungsi sebagai pendeteksi terhadap kelemahan SQL
Injection pada suatu aplikasi web, sehingga dengan bantuan aplikasi tersebut suatu
aplikasi web dapat dideteksi lebih dini terhadap kelemahan SQL Injection.
Selain itu, aplikasi ini juga memberikan info letak kelemahan suatu web
terhadap serangan SQL Injection. Dengan aplikasi ini, pengguna bisa mendeteksi
apakah web memiliki kelemahan SQL Injection atau tidak.
1.2
Rumusan Masalah
Dari latar belakang masalah yang telah dipaparkan, maka akan dibangun
aplikasi web vulnerability scanner untuk serangan SQL Injection memanfaatkan
Google. Adapun beberapa rumusan permasalahan yang ada dalam membangun
aplikasi web vulnerability scanner ini yaitu:
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
4
a) Bagaimana membangun web vulnerability scanner berdasarkan data masukan
dari pengguna untuk web vulnerability scanner berbasis online.
b) Bagaimana mengolah informasi dan menampilkan hasil scanning yang
dibutuhkan oleh pengguna.
1.3
Batasan Masalah
Sedangkan batasan masalah pada proyek akhir ini, antara lain yang
digunakan:
a) Bahasa yang digunakan adalah PHP dan software development yang
digunakan adalah Adobe Macromedia Dreamwaver.
b) Aplikasi web yang dapat dipindai adalah aplikasi web yang dibangun
dengan menggunakan bahasa pemrograman PHP dengan MySQL sebagai
DBMS.
c) Kelemahan yang dibahas adalah SQL Injection.
1.4
Tujuan
Tujuan proyek akhir ini adalah untuk membangun aplikasi web vulnerability
scanner menggunakan PHP. Adapun manfaat dengan dibangunnya aplikasi ini
adalah untuk mendeteksi kelemahan web terhadap serangan SQL Injection.
1.5
Manfaat
Berdasarkan dari latar belakang diatas maka dapat dirumuskan masalah
sebagai berikut:
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
5
a. Membangun web secara secure.
Membuat website dengan tingkat kemanan yang tinggi sehingga tidak
mudah untuk dirusak atau dimasuki oleh pihak – pihak tertentu.
b. Terhindar dari defacer website.
Website bebas dari para perusak tampilan pada website yang telah
dibangun, bahkan menghapus seluruh data yang ada di dalam database.
c. Mendeteksi kelemahan web terhadap serangan SQL Injection.
Mendeteksi salah satu jenis serangan web yang dilakukan dengan
memanfaatkan
kelemahan
pada
suatu
aplikasi
web
sehingga
memungkinkan aplikasi untuk menginjeksikan suatu tag HTML pada
aplikasi web tersebut dikarenakan adanya variabel yang tidak disanitasi
dengan baik.
1.6
Metodologi Penelitian
Dalam pengerjaan proyek akhir ini meliputi langkah-langkah sebagai
berikut:
1. Studi Liter atur
Pada tahap ini dilakukan studi literatur dari beberapa referensi baik itu
dari buku atau internet.
2. Per ancangan Sistem
Pada tahap ini dilakukan perancangan sistem yang akan dibangun,
meliputi perancangan database, perancangan sistem dan pembuatan user
interface.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
6
3. Per siapan Data
Data-data penunjang yang didapatkan berupa suatu kesimpulan, faktafakta dan aturan yang mengatur proses pencarian data yang saling
berhubungan satu sama lain disimpan ke dalam basis data RDBMS
(Relational DataBase Management System) sebagai media penyimpanan.
4. Pengujian dan Analisa
Pengujian dan analisa dimaksudkan untuk mengetahui sejauh mana
sistem yang dibuat pada proyek akhir ini dapat berfungsi sesuai dengan
proses sistem yang diharapkan.
5. Kesimpulan
Dibuat kesimpulan dari pengujian sistem proyek akhir dengan
membandingkan apakah hasilnya seperti yang diharapkan pada tujuan
proyek akhir sebelumnya.
6. Pembuatan Lapor an
Membuat dokumentasi dari semua tahapan proses diatas berupa laporan
yang berisi tentang dasar teori, hasil proyek akhir dan hasil analisis.
1.7
Sistematika Penelitian
Sistematika pembahasan yang akan diuraikan dalam buku laporan proyek
akhir ini terbagi dalam beberapa bab yang akan dibahas sebagai berikut:
BAB I
PENDAHULUAN
Bab ini berisi tentang pendahuluan yang terdiri dari latar belakang,
perumusan masalah, batasan masalah, tujuan dan sasaran,
metodologi, serta sistematika pembahasan dari proyek akhir ini.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
7
BAB II TEORI PENUNJ ANG
Bab ini membahas mengenai teori-teori yang berkaitan dengan
penyelesaian proyek akhir, yang didapatkan dari berbagai macam
buku serta sumber-sumber terkait lainnya yang berhubungan
dengan pembuatan proyek akhir ini.
BAB III PERANCANGAN SISTEM
Bab ini membahas mengenai perancangan sistem, meliputi
perancangan hirarki, perancangan proses, dan perancangan user
interface.
BAB IV IMPLEMENTASI
Bab ini membahas mengenai implementasi sistem.
BAB V UJ I COBA DAN ANALISA
Bab ini menyajikan dan menjelaskan seluruh hasil dan analisa
dalam pembuatan proyek akhir ini dan bagaimana penyelesaian
dari setiap permasalahan error yang terjadi pada sistem operasi
Windows.
BAB VI PENUTUP
Bab ini berisi kesimpulan dari uji coba perangkat lunak, dan saran
untuk pengembangan, perbaikan serta penyempurnaan terhadap
aplikasi yang telah dibuat.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
BAB II
TINJ AUAN PUSTAKA
2.1 Web
Penemu website adalah Sir Timothy John ¨Tim¨ Berners-Lee, sedangkan
website yang tersambung dengan jaringan, pertamakali muncul pada tahun 1991.
Maksud dari Tim ketika membuat website adalah untuk mempermudah tukar
menukar dan memperbarui informasi kepada sesama peneliti di tempat dia
bekerja. Pada tanggal 30 April 1993, menginformasikan bahwa WWW dapat
digunakan secara gratis oleh semua orang.
Sebuah website bisa berupa hasil kerja dari perorangan atau individu, atau
menunjukkan kepemilikan dari sebuah organisasi, perusahaan, dan biasanya
website itu menujukkan beberapa topik khusus, atau kepentingan tertentu. Sebuah
website bisa berisi hyperlink (pranala) yang menghubungkan ke website lain, jadi,
kadangkala perbedaan antara website yang dibuat oleh individu perseorangan
dengan website yang dibuat oleh organisasi bisnis bisa saja tidak kentara. Website
ditulis, atau secara dinamik di konversi menjadi HTML dan diakses melalui
sebuah program software yang biasa disebut dengan web browser, yang dikenal
juga dengan HTTP Client. Halaman web dapat dilihat atau diakses melalui
jaringan komputer dan internet, perangkatnya bisa saja berupa komputer pribadi,
laptop, PDA ataupun telepon selular. Sebuah website dibuat didalam sebuah
sistem komputer yang dikenal dengan server web, juga disebut HTTP Server, dan
pengertian ini juga bisa menunjuk pada software yang dipakai untuk menjalankan
sistem ini, yang kemudian menerima lalu mengirimkan halaman-halaman yang
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
6
7
diperlukan untuk merespon permintaan dari pengguna. Apache adalah piranti
lunak yang biasa digunakan dalam sebuah webserver, kemudian setelah itu adalah
Microsoft Internet Information Services (IIS). (FN Jovan, 2007)
Web mempunyai 2 kategori yaitu:
a. Web statis
Tampilan web yang dilihat ketika melakukan surfing melalui internet
sebenarnya hanyalah file teks biasa. File tersebut terletak pada sebuah server
yang dimiliki oleh penyedia layanan tersebut. File ini dapat diperoleh oleh
pengguna dengan sebuah request. File dengan ekstensi tertentu tersebut
kemudian ditampilkan dengan menggunakan sebuah program interpreter.
Ektensi file yang biasa ditemukan antara lain html, htm, php, asp, cgi dan lain
lain. Untuk lebih jelasnya dapat dilihat oleh pengguna.
Gambar 2.1 Alur data tipikal untuk halaman web yang statis
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
8
Software penerjemah melakukan proses visualisasi berdasarkan perintah yang
terdapat pada file teks yang diperoleh. Kesalahan bahasa pada file teks yang
diterima akan menyebabkan kesalahan pada proses penerjemahan. Software
penerjemah ini lebih dikenal dengan sebutan browser web. Browser web
populer saat ini adalah Firefox, Google Chrome.
b. Web Dinamis
Perbedaan mendasar antara proses penyediaan halaman web statis dengan
proses penyediaan halaman web yang dinamis terletak pada request dan
program penyediaan halaman web pada server yang digunakan. Tabel 2.1
menunjukkan perbedaan tersebut.
Dari Tabel 2.1, dapat disimpulkan bahwa teknologi dynamic web page
memungkinkan halaman web yang mampu beradaptasi masukan pengguna. Untuk
mendukung kemampuan tersebut, server yang menggunakan tekonologi dynamic
web page didukung kemampuan bahasa pemrograman. Isi halaman web yang
dinamis, terdapat pada server, biasanya berisi script pemrograman dalam bahasa
yang biasa terdapat dalam teknologi web seperti JavaScript dan VB. Script
pemrograman ini menerima dan memproses variabel – variabel yang dilakukan
pengguna ketika request dilakukan.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
9
Tabel 2.1 Perbandingan antara web statis dengan web dinamis
Teknologi
Request
Static web page
Informasi berisi halaman Mengirimkan halaman yang
yang diinginkan
Program pada server
diinginkan
Halaman tersebut merupakan
file yang sama dengan yang
terdapat pada server
Dynamic web page
Informasi berisi halaman Mengirimkan halaman yang
yang diinginkan ditambah isinya berdasarkan masukkan
masukkan pengguna
pengguna
Isi halaman yang dikirimkan
dapat berbeda dengan yang
terdapat pada server
Halaman yang dikirimkan oleh server akan berisi informasi yang sangat
tergantung algoritma pemrosesan dari halaman yang terdapat pada server. Gambar
2.2 menunjukkan contoh alur data halaman web yang dinamis. Halaman web yang
dinamis ditunjukkan oleh file helo.asp. Terlihat bahwa file sumber (yang terdapat
pada server) berbeda dengan file yang dikirimkan ke pengguna. (FN Jovan, 2007)
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
10
Gambar 2.2 Contoh alur data pada halaman web yang dinamis
2.2 SQL injection
SQL injection adalah kegiatan menyisipkan perintah SQL kepada suatu SQL
statement yang ada pada aplikasi yang sedang berjalan. Dengan kata lain, SQL
injection ini merupakan suatu teknik pengeksploitasi pada web apilikasi yang
didalamnya menggunakan database untuk penyimpanan datanya. Terjadinya SQL
injection tersebut dikarenakan security atau keamanan pada level aplikasi (dalam
hal ini aplikasi web) masih kurang sempurna. Kurang sempurnanya adalah pada
cara aplikasi menangani inputan yang boleh di proses ke dalam database.
Misalnya pada suatu web yang terdapat fasilitas login, terdapat dua buah
inputan pada umumnya, yaitu username dan password. Jika karakter yang masuk
melalui dua buah inputan tersebut tidak difilter (disaring) dengan baik maka bisa
menimbulkan efek SQL injection, hal ini disebabkan oleh input yang secara sistem
akan menjadi bagian dari kriteria dari suatu perintah SQL di dalam aplikasi web.
Secara garis besar terjadinya SQL injection tersebut adalah sebagai berikut:
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
11
a. Tidak adanya pemfilteran terhadap karakter – karakter tanda petik satu ’ dan
juga karakter double minus -- yang menyebabkan suatu aplikasi dapat disisipi
dengan perintah SQL.
b. Sehingga seorang hacker dapat menyisipkan perintah SQL kedalam suatu
parameter maupun pada text area suatu form.
2.2.1
Default Setting SQL
Seperti yang diketahui bahwa teknik SQL injection ini memungkinkan
seseorang dapat login ke dalam sistem tanpa harus memiliki account. Salah
satunya yaitu default setting SQL. Default setting SQL yang paling berbahaya
adalah menggunakan adminID = sa dan password blank alias (kosong). Apabila
ada direktori sebuah situs yang disitu ada input untuk adminnya maka dimasukkan
id-nya dengan = 'sa' dan password-nya = ' ' maka langsung masuk sebagai admin,
ini jika default setting-nya belum diubah.
Namun ada lagi string yang bisa diinput untuk akses sebagai web admin yaitu
dengan string ' OR 1=1-- apabila ada input web admin berupa user dan password.
Maka apabila di masukan string ' OR 1=1-- di input box user dan masukan foobar
di input box password, maka akan membuat SQL query bingung diakibatkan jadi
SQL Query membacanya sebagai:
T
SELEC
* from users where User ='' or 1=1-- and Password ='foobar'
yang artinya SQL melakukan SELECT semua query dari user yang user-nya ''
(kosong) atau (OR) 1=1 (tr ue) -- (tanda -- adalah mark dari SQL seperti halnya di
C/C++ marknya // atau /*)
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
12
Gambar 2.3 Contoh ilustrasi SQL injection Pada admin login area
Jika diuraikan, logikanya adalah SQL menganggap 1=1 sebagai true sehingga
diartikan kolom password diabaikan karena setelah 1=1 terdapat mark SQL ( -- )
sehingga password itupun diabaikan.
Inti dari injeksi dalam langkah awalnya adalah memaksa keluar sebuah error
page yang berisi informasi struktur database situs itu dan jika ingin melihatnya
harus dilakukan debug. Jadi yang dimasukkan adalah string debugging SQL code,
yaitu ' having 1=1--‘. Ini adalah string yang harus dimasukkan jika ingin melihat
error page dari situs sasaran. Sehingga, dapat dikatakan bahwa teknik ini
memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki
account. Selain itu SQL injection juga memungkinkan seseorang merubah,
menghapus, maupun menambahkan data–data yang berada didalam database.
Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga
tidak bisa memberi layanan kepada web server. (Deris Setiawan, 2005).
2.2.2
Mencar i Tar get
Situs web MS-SQL dengan ASP adalah situs yang paling rentan terhadap
serangan ini. Hal pertama yang dilakukan dalam pencarian target yang sudah tidak
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
13
asing lagi bagi yaitu buka www.google.com, pada kolom keywordnya masukkan
allinur l:co.nz/admin.asp, atau allinur l:/logon.asp, keyword ini dapat di
modifikasi ke berbagai bentuk. Penulisan allinurl perlu dicantumkan, dengan
begitu Google akan segera mencari semua URL dalam sebuah situs yang
mempunyai direktori /admin.asp. maka bisa saja mengganti keyword tersebut
dengan allinur l:.co.id atau net atau or g, or.id, sampai allinurl:.fr /admin.asp
semua tergantung kemauan di dalam mencari target menggunakan Google. Hal
yang terpenting dari semua itu adalah harus diketahui di mana harus memasukkan
string SQL misalnya di member login, user login, dan bahkan dapat pula di search
product dan lainnya. (Deris Setiawan, 2005)
2.2.3
Lokasi SQL injection
Injeksi pada situs target tidak selalu melalui input box. Injeksi juga bisa
dilakukan dengan memasukan string-string SQL di URL situs target. Misalnya ada
sebuah situs www.xxxxxx.com/moreinfo.cfm?ProductID= 245
lalu, ketikkan
string injeksi debuging SQL tadi ke address bar dibelakang url target itu, salah
satu contohnya:
www.xxxxxx.com/moreinfo.cfm?ProductID=245' having 1=1-- atau juga dapat
menghapus nilai produk dari URL tersebut dan ganti dengan debugging codenya,
sebagai contoh:
www.xxxxxx.com/moreinfo?ProductID=' having 1=1--”
Apabila setelah itu akan keluar sebuah error page dari situs itu, ini
menandakan bahwa situs tersebut dapat memberikan informasi tentang struktur
database situs itu. Dari hasil informasi tersebut, maka dapat melakukan serangan
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
14
SQL injection berikutnya. Apabila browser yang digunakan adalah Internet
Explorer, ada sebagian situs yang tidak menampilkan error-nya. Hal ini
dikarenakan opsi Show Friendly HTTP Error Messages diaktifkan. Untuk itu
perlu menonaktifkannya dengan cara menghilangkan tanda centang di kotaknya.
Opsi ini dapat ditemukan di Tools > Inter net Option > Advanced cari opsinya di
bagian browsing lalu hilangkan tanda injeksi pada situs target tidak selalu
melakukan input box. Injeksi juga bisa dilakukan dengan centangnya dan klik
tombol Apply. Sesudah itu apabila menemui error page yang berisi HTTP 500
error - internal server error.
Sebelum mengatur opsi tadi, cukup menekan tombol Refresh, lalu terlihatlah
sudah error-nya. Setelah diketahui struktur database dari situs target, dengan
pengetahuan dasar dari belajar SQL yang dapat menghancurkan database itu
dengan perintah ' dr op
database [nama_database] atau drop
table
[nama_table]. Namun bukan ini yang dicari dalam SQL injection karena tidak
mendapat apa-apa dari string tadi. (Setiawan Deris, 2005)
2.3 PHP
Bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak
dipakai untuk memrogram situs web dinamis, walaupun tidak tertutup
kemungkinan digunakan untuk pemakaian lain. Contoh terkenal dari aplikasi PHP
adalah phpBB dan MediaWiki (software di belakang Wikipedia). PHP juga dapat
dilihat sebagai pilihan lain dari ASP.NET/C#/VB.NET Microsoft, ColdFusion
Macromedia, JSP/Java Sun Microsystems, dan CGI/Perl. Contoh aplikasi lain
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
15
yang lebih kompleks berupa CMS yang dibangun menggunakan PHP adalah
Mambo, Joomla!, Postnuke, Xaraya, dan lain-lain.
Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs
Personal). PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada
waktu itu PHP masih bernama FI (Form Interpreted), yang wujudnya berupa
sekumpulan script yang digunakan untuk mengolah data form dari web.
Selanjutnya
Rasmus merilis
kode
sumber tersebut untuk umum dan
menamakannya PHP/FI. Dengan perilisan kode sumber ini menjadi open source,
maka banyak programmer yang tertarik untuk ikut mengembangkan PHP. Pada
November 1997, dirilis PHP/FI 2.0. Pada rilis ini interpreter PHP sudah
diimplementasikan dalam program C. Dalam rilis ini disertakan juga modulmodul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan.
Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter
PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada Juni 1998,
perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis
tersebut sebagai PHP 3.0 dan singkatan PHP dirubah menjadi akronim berulang
PHP: Hypertext Preprocessing. Pada pertengahan tahun 1999, Zend merilis
interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah
versi PHP yang paling banyak dipakai pada awal abad ke-21. Versi ini banyak
dipakai disebabkan kemampuannya untuk membangun aplikasi web kompleks
tetapi tetap memiliki kecepatan dan stabilitas yang tinggi.
Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter
PHP mengalami perubahan besar. Versi ini juga memasukkan model
pemrograman berorientasi objek ke dalam PHP untuk menjawab perkembangan
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
16
bahasa pemrograman ke arah paradigma berorientasi objek. kelebihan PHP dari
bahasa pemrograman lain:
a. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan
sebuah kompilasi dalam penggunaanya.
b. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai
apache, IIS, Lighttpd, nginx, hingga Xitami dengan konfigurasi yang relatif
mudah.
c. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis dan
developer yang siap membantu dalam pengembangan.
d. Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah
karena memiliki referensi yang banyak.
e. PHP adalah bahasa open source yang dapat digunakan di berbagai mesin
(Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime
melalui console serta juga dapat menjalankan perintah-perintah system.
PHP memiliki 7 tipe data yaitu :
1. Integer
Nilai sebuah data dari sebuah tipe data integer adalah nilai bilangan bulat
tersebut dalam matematika. Representasi data ini merupakan cara
bagaimana nilainya disimpan di dalam memori komputer. Tipe data
integral terbagi menjadi dua buah kategori, baik itu bertanda (signed)
ataupun tidak bertanda (unsigned). Bilangan bulat bertanda mampu
merepresentasikan nilai bilangan bulat negatif, sementara bilangan bulat
tak bertanda hanya mampu merepresentasikan bilangan bulat positif.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
17
Representasi integer positif di dalam komputer sebenarnya adalah untaian
bit, dengan menggunakan sistem bilangan biner. Urutan dari bit-bit
tersebut pun bervariasi, bisa berupa Little Endian ataupun Big Endian.
Selain ukuran, lebar atau ketelitian (presisi) bilangan bulat juga bervariasi,
tergantung jumlah bit yang direpresentasikanya. Bilangan bulat yang
memiliki n bit dapat mengodekan 2 n. Jika tipe bilangan bulat tersebut
adalah bilangan bulat tak bertanda, maka jangkauannya adalah dari 0
hingga 2n-1.
2. Double
Double adalah deklarasi untuk tipe data numerik bilangan pecahan secara
default
3. Boolean
Boolean adalah suatu tipe data yang hanya mempunyai dua nilai. Yaitu
true atau false (benar atau salah). Pada beberapa bahasa pemograman nilai
true bisa digantikan 1 dan nilai false digantikan 0.
4. String
String dalam pemrograman komputer adalah sebuah deret simbol. Tipe
data string adalah tipe data yang digunakan untuk menyimpan barisan
karakter.
5. Object
Object merupakan tipe data yang bisa berupa bilangan, variabel atau
fungsi. Data ini dapat dimasukkan ke dalam skrip program sehingga
meringkas beberapa fungsi dan memperkecil ukuran file.
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
18
6. Array
Array adalah suatu tipe data terstruktur yang dapat menyimpan banyak
data dengan suatu nama yang sama dan menempati tempat di memori yang
berurutan (kontigu) serta bertipe data sama pula. Array dapat diakses
berdasarkan indeksnya. Indeks array umumnya dimulai dari 0 dan ada
pula yang dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat
dengan menggunakan perulangan (looping).
7. Null
Null itu artinya kosong, Tapi artian kosong tidak sama dengan string ""
atau string empty.
Kode program PHP menyatu dengan tag-tag HTML dalam satu file. Kode
PHP diawali dengan tag . File yang
berisi tag HTML dan kode PHP ini diberiekstensi .php atau ekstensi lainnya yang
ditetapkan pada Apache atau web server. Berdasarkan ekstensi ini, pada saat file
diakses, server akan tahu bahwa file ini mengandung kode PHP. Server akan
menerjemahkan kode ini dan menghasilkan keluaran dalam bentuk tag HTML
yang akan dikirim ke browser client yang mengakses file tersebut. Sebagai
contoh:
emrograman
P
PHP
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
19
Pada contoh program diatas terdapat satu baris perintah PHP, yaitu
Perintah ini dibuka dengan tag . Perintah PHP dapat
disisipkan disembarang tempat dari file diatas. Setiap baris perintah PHP diakhiri
dengan tanda titik koma (;), tag penutup ?> juga dapat berfungsi sebagai
pengganti titik koma (;), jadi baris perintah diatas dapat juga dituliskan (Abdul Kadir, 2009).
Penggunan cURL pada php
cURL (dibaca: si URL) singkatan dari Client URL dan dikembangkan oleh
Daniel Stenberg pada tahun 1998 sebagai alat bantu command line untuk transfer
files dengan sintaks URL melalui bermacam-macam protokol (FTP, HTTP,
HTTPS, SCP, SFTP, TELNET, LDAP, dsb). Langkah awal menggunakan cURL
dalam PHP adalah menginisialisasi sebuah session (atau disebut juga membuat
cURL resource), yaitu dengan:
Setelah sebuah resource cURL terbentuk, curl_init() akan memberikan penangan
(handle) berupa fungsi-fungsi untuk meset berbagai opsi (curl_setopt()), untuk
mulai menjalankan cURL sesuai dengan opsi yang diset (curl_exec()), dan
kemudian menutup session dari resource yang dibentuk tersebut (curl_close()).
Misal ingin mendapatkan halaman http://gedex.web.id/, maka bisa menggunakan
fungsi curl_setopt():
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.
20
Setelah itu bisa mendapatkan halamannya dengan memanggil fungsi curl_exec(),
yang secara otomatis (defaultnya) akan mencetak halaman tersebut.
Untuk membebaskan pemakaian resource sistem, ada baiknya menutup session
dari resource cURL yang telah dibuat dengan fungsi curl_close():
Pada contoh di atas, output halamannya langsung dicetak setelah memanggil
fungsi curl_exec($ch). Agar output dikembalikan dari fungsi curl_exec()
(sehingga bisa ditampung ke sebuah variabel untuk pemrosesan lainnya) tanpa
langsung mencetak, perlu menset CURLOPT_RETURNTRANSFER ke true.
Contohnya:
Pada contoh di atas, halaman web (file HTML) tidak langsung dicetak
setelah pemanggilan curl_exec($ch), tapi diberikan ke variabel $output yang
selanjutnya digunakan untuk mengganti kata ‘gedex’ menjadi kata ‘dini’. Inilah
salah satu opsi yang tersedia dari curl_setopt(). Masih ada banyak lagi opsi
curl_setopt yang tersedia. Tulisan kali ini tidak akan membahas semua opsi yang
tersedia, tetapi hanya sebagian opsi yang menarik dan sering digunakan. Opsi
pertama yang menarik adalah CURL