• Tidak ada hasil yang ditemukan

PEMBUATAN APLIKASI WEB VULNERABILITY SCANNER TERHADAP KELEMAHAN XSS (Cross Site Scripting) MENGGUNAKAN JAVA.

N/A
N/A
Protected

Academic year: 2017

Membagikan "PEMBUATAN APLIKASI WEB VULNERABILITY SCANNER TERHADAP KELEMAHAN XSS (Cross Site Scripting) MENGGUNAKAN JAVA."

Copied!
92
0
0

Teks penuh

(1)

PEMBUATAN APLIKASI WEB VULNERABILITY SCANNER

TERHADAP KELEMAHAN XSS (Cross Site Scripting)

MENGGUNAKAN JAVA.

TUGAS AKHIR

Oleh :

M. TRI JOKO

0534010093

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

JAWA TIMUR

(2)

MENGGUNAKAN JAVA.

TUGAS AKHIR

Diajukan Untuk Memenuhi Sebagian Persyaratan Dalam Memperoleh Gelar Sarjana Komputer

Jurusan Teknik Informatika

Oleh :

M. TRI JOKO

0534010093

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

JAWA TIMUR

(3)

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 “PEMBUATAN APLIKASI WEB VULNERABILITY SCANNER

TERHADAP KELEMAHAN XSS (Cross Site Scripting) MENGGUNAKAN JAVA

“yang merupakan persyaratan dalam memperoleh gelar Sarjana Komputer di

Universitas Pembangunan Nasional “VETERAN” Jatim.

Penulis mengucapkan terima kasih yang sebesar-besarnya kepada

pihak-pihak yang telah membantu baik materiil maupun dorongan spirituil untuk

menyelesaikan penulisan kerja praktek ini, terutama kepada:

1. Orang Tua dan keluarga tercinta serta sayangku nenni sutomo atas motivasi dan

doanya sehingga semua yang dikerjakan dapat berjalan lancar.

2. Bapak Prof. Dr. Ir. Teguh Soedarto, MP, selaku Rektor UPN “Veteran” Jatim.

3. Bapak Ir. Bambang Wahyudi, MS, selaku DEKAN FTI UPN “VETERAN” Jatim.

4. Bapak Nur Cahyo Wibowo, S.Kom, M.Kom selaku Kepala Jur. Sistem Informasi,

FTI UPN “VETERAN” Jatim.

5. Bapak Basuki Rachmat, S.Si, MT, selaku Kepala Jurusan Teknik Informatika

sekaligus Tim Penguji Tugas Akhir Penulis.

6. Bapak Achmad Junaidi, S.Kom, selaku Dosen Pembimbing yang telah

meluangkan waktu untuk memberikan bimbingan selama proses pelaksanaan

Tugas Akhir penulis.

(4)

penulis.

8. Special to: Arbi Septiawan (pakde) dan my laptop yang selalu setia menemaniku

untuk mengerjakan ini semua..

9. Dosen-dosen Teknik Informatika dan Sistem Informasi, staff dan segenap civitas

akademika UPN “VETERAN” Jatim.

10. My best Friends: Diah, Indri, Rina, Ve, Amey, MIO Gangster (Bang Budi

abangku tercinta, Broden, Jo2, Faisal, Ringgo, Mr. Craps, Pak Cahyo, Max, and

buat semuanya teman-teman UPN ).

11. MITRA IT (BGJUNCTION L2-B23), Pak Wahyudi makasih untuk tempatnya,

Frangky, Ito yang slalu setia menemani, semua crew Yogyafree.net.

12. Teman-teman Perum Marinir Gunung Sari makasih untuk suport dan doanya dan

Mas Mukhson makasih slalu kasih info.

13. 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.

(5)

Akhirnya dengan ridho Allah penulis berharap semoga Tugas Akhir ini

dapat memberikan manfaat bagi pembaca sekalian terutama mahasiswa di bidang

komputer.

Surabaya, 10 Agustus 2010

Penulis

(6)

Halaman

HALAMAN JUDUL

LEMBAR PENGESAHAN

LEMBAR PENGESAHAN DAN PERSETUJUAN

(7)

2.2.2 Web Site Dengan Cross Site Scripting ... 14

2.2.3 Informasi Yang Diterbitkan Penyedia Layanan ... 18

2.2.4 Link Dalam Cross Site Scripting ... 19

2.2.5 Pencurian Data ... 20

2.2.6 Apa Yang Cross Site Scripting Dapat Lakukan ... 21

2.3 Java ………... 23

3.5.1 Blok Arsitektur Sistem WVS Online ……… 49

3.5.2 Blok Arsitektur sistem WVS berbasis Offline ... 50

BAB IV IMPLEMENTASI ………..………. 52

4.1 Implementasi Sistem ………. 52

(8)

5.2 Uji Coba ………..……….. 57

5.2.1 Aplikasi Web Vulnerability Scanner …….…..….. 57

5.2.2 Proses Scanning Secara Online ………. 59

5.2.3 Proses Scanning Secara Offline ….……… 78

5.3 ANALISA ……… 81

5.3.1 Analisa Scan XSS ……….…… 81

BAB VI PENUTUP……… ………...………. 84

6.1 Kesimpulan……… ………. 84

6.2 Saran……..……… ………. 84

(9)

DAFTAR TABEL

Halaman

Tabel 2.1 Perbandingan Antara Static Dengan Dynamic Web Page... 9

Tabel 2.2 HTML Escape Encoding...……….…...… 15

Tabel 2.3 Tipe Data Dalam My SQL.. ……….…...… 30

(10)

Halaman

Gambar 1.1 Data Statistik Serangan Terhadap Aplikasi Web ………... 2

Gambar 2.1 Alur Data Tipikal Untuk Halaman Web Yang Statis...……. 8

Gambar 2.2 Contoh Alur Data Pada Halaman Web Yang Dinamis.…… 10

Gambar 2.3 Contoh Kasus Cross Site Scripting.………….………. 12

Gambar 2.4 Contoh Kasus Cross Site Scripting ……….. 14

Gambar 2.5 Contoh Kasus Cross Site Scripting …..…….……… 14

Gambar 2.6 Contoh Kasus Cross Site Scripting ………... 18

Gambar 2.7 Contoh Kasus Cross Site Scripting …..………. 19

Gambar 2.8 Cara Kerja Web Server ………..… 33

Gambar 3.1 Perancangan Sistem Secara Global ……….….. 36

Gambar 3.2 Diagram Alur Scan XSS ... 38

Gambar 3.3 Proses Injeksi XSS Tidak Valid ...…... 40

Gambar 3.4 Proses Injeksi XSS Valid ...………...… 41

Gambar 3.5 Blok Arsitektur Sistem WVS berbasis online ... 42

Gambar 3.6 Blok Arsitektur Sistem WVS berbasis offline ...….…….. 43

Gambar 4.1 Tampilan Menu Utama ……….. 44

Gambar 4.2 Halaman WVS Scan XSS ... 45

Gambar 4.3 Potongan Script Scan XSS ……… 45

Gambar 4.4 Tampilan Laporan Scan XSS ... 46

(11)

Gambar 4.5 Laporan Scanning Terakhir ... 46

Gambar 4.6 Potongan script laporan scanning terakhir ...…... 47

Gambar 4.7 Fitur Help ……… 48

Gambar 5.6 Tampilan Awal Website Yang Sudah Terinjeksi XSS ... 54

Gambar 5.7 Tampilan Awal Website Target ...………...…... 55

Gambar 5.8 Form Scanning XSS ...…... 55

Gambar 5.9 Proses Scan XSS Telah Selesai ...……... 56

Gambar 5.10 Laporan Scan XSS ...……... 57

Gambar 5.11 Tampilan Awal Website Yang Sudah Terinjeksi XSS`... 57

Gambar 5.12 Tampilan Awal Website Target ……… ………..…... 58

Gambar 5.13 Form Scanning XSS ……… …….………..……….. …... 59

Gambar 5.14 Proses Scan XSS telah selesai ……… …….………..….... 60

Gambar 5.15 Laporan Scan XSS ...……... 60

Gambar 5.16 Tampilan Awal Website Yang Sudah Terinjeksi XSS`... 61

Gambar 5.17 Tampilan Awal Website Target ……… ………..…... 62

Gambar 5.18 Form Scanning XSS ……… …….………..……… 63

Gambar 5.19 Proses Scan XSS telah selesai ……… …….………..…….. 63

Gambar 5.20 Laporan Scan XSS ...……... 64

(12)

xviii

Gambar 5.23 Form Scanning XSS ……… ………….………..…………. 66

Gambar 5.24 Proses Scan XSS telah selesai ……… …….………..…... 67

Gambar 5.25 Laporan Scan XSS ...……... 67

Gambar 5.26 Tampilan Awal Website Yang Sudah Terinjeksi XSS`... 68

Gambar 5.27 Tampilan Website Tiruan ……..……… ………..…… 69

Gambar 5.28 Tampilan Awal Website Target ……… ………..…… 70

Gambar 5.29 Form Scanning XSS ……… ………….………..…………. 71

Gambar 5.30 Proses Scan XSS telah selesai ……… …….………..…….. 72

Gambar 5.31 Laporan Scan XSS ...……... 72

Gambar 5.32 Tampilan Awal Website Yang Sudah Terinjeksi XSS`... 73

(13)

ABSTRAKSI

Hingga saat ini tindakan penyerangan pada suatu web semakin tinggi. Sering

terlihat di media cetak,dan media elektronik begitu banyak berita yang memuat

aksi-aksi 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, XSS.

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

XSS.

Maka dengan menggunakan aplikasi web vulnerability scanner dapat

dideteksi suatu kelemahan web terhadap kelemahan XSS dengan lebih dini sehingga

dapat dicegah. Untuk kedepannya aplikasi web vulnerability scanner dapat

digabungkan dengan browser.

(14)

1.1 LATAR 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 ber-revolusi menuju ke tingkatan yang berbeda. Halaman web kini

tidak lagi statis namun juga dinamis. Kini halaman web yang dinamis merupakan

pemandangan yang biasa kita lihat 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 content-content

yang sebelumnya masih merupakan impian belaka.

Dalam system security computer, istilah Vulnerability merupakan suatu

kelemahan yang memungkinkan seseorang untuk masuk dan mendapatkan hak

akses ke dalam komputer yang dituju(target). Biasanya vulnerability adalah

kelemahan yang dikarenakan kesalahan setting ataupun ataupun ketidaktahuan

administrator.(http://ahmad-prayitno.com)

Dan 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

terhadap serangan yang dilakukan oleh para cracker. Corsaire mendasarkan hasil

temuan ini pada penelitian selama enam tahun terakhir.

(http://berita.kapanlagi.com)

Dalam menganalisa, Corsaire menggunakan sampel dari

perusahaan-perusahaan besar di beberapa tempat termasuk Inggris, Australia, Eropa, Asia dan

tentu saja Amerika Serikat. Hasil analisa menunjukkan bahwa meski ada usaha

(15)

2

untuk memperbaiki aplikasi berbasis web ini, namun setidaknya masih ada sekitar

25% yang memiliki resiko tinggi.

Berikut merupakan data dari http://www.webappsec.org/projects/statistics

tentang statistic serangan terhadap Aplikasi Web:

Gambar 1. 1 Data Statistik Serangan terhadap Aplikasi Web

Dari statistik diatas diketahui bahwa serangan XSS menempati urutan Pertama.

Para hacker berkonsentrasi melakukan eksploitasi pada 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 kriminal. Misalnya saja melakukan phishing, pencurian

informasi sensitif milik pengguna, memanen email pengguna untuk keperluan

spamming, dll. Dalam kondisi ini, Attacker dapat membuat agar pemilik sah-nya

yang bertanggung jawab atas tindak kejahatan tersebut

Dilatarbelakangi permasalahan di atas, dalam proyek akhir ini dibangun

sebuah aplikasi yang berfungsi sebagai pendeteksi terhadap kelemahan XSS pada

suatu aplikasi web, sehingga dengan bantuan aplikasi tersebut suatu aplikasi web

dapat dideteksi lebih dini terhadap kelemahan XSS.

Selain itu, aplikasi ini juga memberikan info letak kelemahan suatu web

terhadap serangan XSS. Dengan aplikasi ini, pengguna bisa mendeteksi apakah

(16)

1.2 RUMUSAN MASALAH

Dari latar belakang masalah yang telah penulis paparkan, maka penulis

mencoba untuk membangun aplikasi Web Vulnerability Scanner. Adapun

beberapa rumusan permasalahan yang ada dalam membangun aplikasi Web

Vulnerability Scanner ini yaitu :

a) Bagaimana membangun Web Vulnerability Scanner berdasarkan data

masukan dari pengguna berupa URL untuk Web Vulnerability Scanner

berbasis Online.

b) Bagaimana membangun Web Vulnerability Scanner berbasis Offline

dengan ketentuan file web sudah harus tersimpan di htdocs Xampp.

c) Bagaimana Mengolah informasi dan menampilkan hasil scan yang

dibutuhkan oleh pengguna.

1.3 BATASAN MASALAH

Sedangkan batasan masalah pada proyek akhir ini, antara lain :

a) Bahasa yang digunakan adalah Java dan software developmentnya

adalah Netbeans

b) Aplikasi web yang dapat di scan adalah aplikasi web yang dibangun

dengan menggunakan bahasa pemrograman PHP dengan MYSQL

sebagai DBMS.

c) Kelemahan yang dibahas adalah XSS

1.4 TUJUAN

Tujuan proyek akhir ini adalah untuk membangun aplikasi Web Vulnerability

Scanner Menggunakan Java. Adapun manfaat dengan dibangunnya aplikasi ini

adalah untuk mendeteksi kelemahan web terhadap serangan XSS (Cross Site

Scripting).

1.5 MANFAAT

Berdasarkan dari latar belakang diatas maka dapat dirumuskan masalah

sebagai berikut :

(17)

4

Membuat website dengan tingkat kemanan yang tinggi sehingga tidak

mudah untuk dirusak atau dimasuki oleh pihak – pihak tertentu.

b.Terhindar dari defacer website.

Adalah 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 XSS (Cross Site Scripting).

Yaitu mendeteksi salah satu jenis serangan web yang dilakukan dengan

memanfaatkan kelemahan pada suatu aplikasi web sehingga

memungkinkan aplikasi untuk menginjeksikan suatu tag HTML ataupun

Client Side Script 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 Literatur

Pada tahap ini dilakukan studi literatur dari beberapa referensi baik itu

dari buku atau internet.

2. Perancangan Sistem

Pada tahap ini dilakukan perancangan sistem yang akan dibangun,

meliputi perancangan database, perancangan sistem dan pembuatan user

interface.

3. Persiapan Data

Data-data penunjang yang didapatkan berupa suatu kesimpulan,

fakta-fakta dan aturan yang mengatur proses pencarian data yang saling

berhubungan satu sama lain disimpan ke dalam basis data RMS (Record

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.

(18)

Dibuat kesimpulan dari pengujian sistem proyek akhir dengan

membandingkan apakah hasilnya seperti yang diharapkan pada tujuan

proyek akhir sebelumnya.

6. Pembuatan Laporan

Membuat dokumentasi dari semua tahapan proses diatas berupa laporan

yang berisi tentang dasar teori, hasil proyek akhir dan hasil analisa.

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.

BAB II TEORI PENUNJANG

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 system BAB V UJI 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

(19)

6

BAB VI PENUTUP

Bab ini berisi kesimpulan dari uji coba perangkat lunak, dan saran

untuk pengembangan, perbaikan serta penyempurnaan terhadap

(20)

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, CERN (tempat dimana Tim bekerja)

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 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). (http://id.wikipedia.org/

wiki/Situs_web).

Web mempunyai 2 kategori yaitu :

a. Web statis

Tampilan web yang kita lihat ketika melakukan surfing melalui internet

(21)

8

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

Gambar 2.1 Alur data tipikal untuk halaman web yang statis

oleh pengguna. 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

internet explorer dan keluarga netscape.( http://id.wikipedia.org)

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 1

(22)

Tabel 2.1 Perbandingan antara static web page dengan

dynamic web Page

Dari tabel 2.1, kita dapat menyimpukan 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 dilalukan pengguna

ketika request dilakukan. 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.

(23)

10

Gambar 2.2 Contoh alur data pada halaman web yang dinamis

2.2 XSS (Cross Site Scripting)

Cross site scripting adalah kelemahan keamanan yang terjadi pada

penggunaan teknologi dynamic page. Cross site scripting dapat diartikan

sebagai kelemahan yang terjadi akibat ketidakmampuan server dalam

memvalidasi input yang diberikan oleh pengguna. Algoritma, yang digunakan

untuk pembuatan halaman yang diinginkan, tidak mampu melakukan

penyaringan terhadap masukkan tersebut. Hal ini memungkinkan halaman

yang dihasilkan menyertakan perintah yang sebenarnya tidak diperbolehkan.

Cross site scripting merupakan kelemahan yang populer untuk dieksploitasi.

Namun sayangnya, banyak penyedia layanan yang tidak mengakui kelemahan

tersebut dan melakukan perubahan pada sistem yang mereka gunakan. Citra

penyedia layanan merupakan harga yang dipertaruhkan ketika mereka

mengakui kelemahan tersebut. Sayangnya dengan tindakan ini konsumen atau

pengguna menjadi pihak yang dirugikan.

2.2.1 Cara Kerja Cross Site Scripting

Cross site scripting bekerja bak penipu dengan kedok yang mampu

mengelabui orang yang tidak waspada. Elemen penting dari keberhasilan

(24)

Social engineering merupakan elemen terpenting yang menentukan

keberhasilan penipuan yang akan dilakukan. Cross site scripting

memampukan seseorang yang tidak bertanggungjawab melakukan

penyalahgunaan informasi penting. Sebelum sampai pada proses

penyalahgunaan tersebut, penyerang mengambil langkah-langkah dengan

mengikuti pola tertentu. Langkah pertama, penyerang melakukakan

pengamatan untuk mencari web-web yang memiliki kelemahan cross site

scripting. Langkah kedua, sang penyerang mencari tahu apakah web tersebut

menerbitkan informasi yang dapat digunakan untuk melakukan pencurian

infomasi lebih lanjut. Informasi tersebut biasanya berupa cookie. Langkah

kedua ini tidak selalu dijalankan. Langkah ketiga, sang penyerang

membujuk korban untuk mengikuti sebuah link yang mengandung kode,

ditujukan untuk mendapatkan informasi yang telah disebutkan sebelumnya.

Kemampuan social engineering dari sang penyerang diuji disini. Setelah

mendapatkan informasi tersebut, sang penyerang melakukan langkah

terakhir, pencurian maupun pengubahan informasi vital. Berikut merupakan

contoh kasus dari cross site scripting. Anggap sebuah penyedia layanan

message board, A, memiliki kelemahan cross site scripting. Web tersebut

juga menghasilkan cookie. Cookie tersebut bertujuan agar pengguna dapat

membuka jendela browser baru tanpa memasukkan user name dan password

lagi. B, mencoba untuk mengeksploitasi kelemahan ini, meletakkan sebuah

link yang mengandung kode yang “jahat” pada message board tersebut. C,

seorang pengguna, tertarik pada link tersebut menekan link tersebut. Tanpa

disadari C, cookie yang terdapat pada komputernya telah dikirimkan ke

komputer B. Kini B dapat mengakses message board sebagai C hanya

dengan menggantikan cookienya dengan cookie yang ia dapatkan dari C.

(25)

12

Gambar 2.3 Contoh kasus cross site scripting

Bagian berikut akan menjelaskan secara lebih mendalam setiap langkah

sampai penyalahguanan informasi dapat terjadi.( http://msdn.microsoft.com/

workshop/author/dhtml/httponly_cookies.asp)

2.2.2 Web Site Dengan Cross Site Scripting

Pencarian web site dengan kelemahan cross site scripting sebenarnya

tidaklah terlalu sulit. Web site yang menghasilkan halaman web yang

dinamis merupakan syarat utama yang diperlukan untuk mengeksploitasi

kelemahan ini. Web dengan form input merupakan web potensial untuk

dieksplotasi cross site scripting. Web yang membutuhkan user name dan

password serta search engine termasuk didalamnnya. Syarat berikutnya

adalah web tersebut menggunakan metoda get ketika melakukan

komunikasi. Methoda get mencantumkan informasi pada field link (juga

disebut querystring) yang dikirimkan (Ollman & Gunter). Contoh dari link

dengan menggunakan methoda get, http://www.jospyro.com/ halaman1.asp?

username = me. Ini menunjukkan bahwa web tersebut dapat diinjeksi

dengan script. Langkah terakhir adalah memastikan bahwa script yang kita

(26)

berikut akan menampilkan halaman1.asp dengan pop-up box ketika di klik

(pop up box tersebut akan bertuliskan “ jospyro ”),

http://www.jospyro.com/halaman1.asp?username=<script language =

“JavaScript”>alert (‘jospyro) </script>. Contoh berikut merupakan

merupakan halaman web yang menggunakan form. Data yang dikirimkan

berupa nama pengguna. Data dikirimkan dengan menggunakan metoda get.

Isi halaman web tersebut adalah sebagai berikut.

<HTML>

<HEAD>

<TITLE>

Contoh halaman menggunakan form :

</TITLE>

</HEAD> <BODY>

<form name="input" method="get"

action="helo.asp">

Nama user :

<input type=text name="username">

<br> <input type=submit value="Send">

</form>

</BODY> </HTML>

Script file yang bertugas menghasilkan halaman web berdasarkan input dari

login.html adalah hello.asp . Isi dari hello.asp adalah sebagai berikut.

<HTML> <BODY>

<%

response.write "Selamat datang "

response.write

request.querystring("username")

%>

(27)

14

Gambar 2.4 Contoh kasus cross site scripting

Halaman web dinamis yang dihasilkan oleh server

(http://et1/helo.asp?username=%3Cscript%3Ealert%28%27jospyro%27%2

9% 3C%2Fscript%3E) berisi script sebagai berikut.

<HTML>

<BODY>

Selamat datang <script>alert(' jospyro

')</script>

</BODY></HTML>

(28)

ekuivalen yang dikodekan. Pengkodean yang biasa digunakan adalah HTML

escape encoding. Tabel 2 menunjukkan karakter tersebut dengan ekuivalen

karakter yang telah dikodekan.

Tabel 2.2 HTML Escape Encoding

untuk menghindari rutin tersebut dan penggunaan karakter alternatif “\x3c”

(<) dan “\x3e” (>), maka penyerang tetap dapat melakukan injeksi kode.

Teknik lain adalah dengan membuat aplikasi yang memfilter kode yang

diinjeksikan dengan comment. Jika pada input terdapat

<script>code</code> maka halaman yang dihasilkan adalah seperti berikut.

<COMMENT>

<script>code</script>

</COMMENT>

Penyerang dapat menghindari dengan menambahkan kode <COMMENT>

dan </COMMENT> diantara kode yang ia injeksikan sehingga filter dapat

dilewati. Jika input <script></COMMENT><script><code></script><

(29)

16

Kode tetap dapat diinjeksikan!

2.2.3 Informasi Yang Diterbitkan Penyedia Layanan

Pengecekan ini dilakukan ketika penyerang bertujuan untuk melakukan

penyalahguanaan informasi pengguna. Seperti telah disebutkan sebelumnya,

informasi yang sering diperiksa adalah cookie. Penyerang dapat melakukan

ini dengan terlebih dahulu mendaftar sebagai salah satu pengguna.

Penyerang akan memeriksa informasi apa yang terdapat pada cookie

tersebut. Apakah cookie tersebut dapat digunakan untuk mengelabuhi

server.`Tidak semua proses eksploitasi ditujukan pada penyalahgunaan

informasi pengguna. Terdapat juga tipe eksploitasi yang ditujukan untuk

“mengubah” isi dari informasi atau iklan yang ditampilkan. Tipe eksploitasi

seperti ini tidak membutuhkan penyediaan informasi, seperti cookie.

2.2.4 Link Dalam Cross Site Scripting

Bagian ini sangat menarik karena mencakup aspek social engineering. Cross

site scripting merupakan lubang yang timbul akibat ketidakmampuan server

untuk mengecek input yang diberikan pengguna. Jadi titik berat keberhasilan

eksploitasi kelemahan ini terletak pada pengguna. Bagaimana membujuk

pengguna untuk mengklik link yang disediakan oleh penyerang. Link ini

biasa diletakkan pada e-mail, message board, dan lain lainnya. Untuk

menghindari pemfilteran, penyerang perlu untuk mengkodekan link yang ia

buat ke bentuk yang akan terlihat aneh bagi pengguna. Pengkodean biasanya

menggunakan HTML Escape encoding yang menggunakan karakter yang

(30)

disertakan dalam link cukup panjang, pengguna akan curiga dan

mengurungkan niatnya (walau sebaik apapun social engineering yang

dilakukan). Untuk mengkamuflasekan link ini, penyerang menggunakan

nama lain yang lebih menarik daripada langsung meletakkan link tersebut.

Alih-alih meletakkan link http://trustedsite.org/page1?name=%3cscript%

3esomecode%3c /script %3e, akan lebih baik membuat link dengan nama

click me yang merujuk pada link yang sama. Walaupan link yang

sebenarnya akan terlihat pada bagian bawah kiri dari browser, pengguna

pada umumnya kurang memperhatikan kejanggalan yang ada dan langsung

mengklik link tersebut. Cara lain untuk memastikan bahwa link tersebut

akan dijalankan adalah dengan menggunakan perintah onmouseover.

Dengan menggunakan perintah ini, link beserta kode yang terdapat

didalamnya dapat dijalankan ketika cursor bersada diatas link tersebut.

Dengan cara ini, persentase keberhasilan cross site scripting terjadi semakin

besar.

2.2.5 Pencurian Data

Pencurian data dengan menggunakan informasi yang diperoleh seperti

cookie ditujukan pada penyalahgunaan informasi pengguna. Cookie yang

dihasilkan penyedia layanan berisi informasi yang bermacam – macam. Jika

informasi ini berhasil didapakan maka penyalahgunaan dapat terjadi.

Cookie, tipe berbeda, digunakan sebagai alat identifikasi selama session

berlangsung (session berlangsung ketika pengguna log-in sampai pengguna

log-out). Jika penyerang berhasil mendapatkan cookie seorang pengguna

selama session berlangsung, penyerang bisa mendapatkan akses sebagai

pengguna hanya dengan mengubah cookie yang ia gunakan dengan cookie

yang ia dapatkan dari korban. Hal lain yang terpenting ketika pencurian

dilakukan adalah kesan yang diberikan pada korban. Sering kali halaman

web menampilkan broken link ketika eksploitasi dilakukan. Untuk

menghindari kecurigaan korban, biasanya penyerang membuat script yang

(31)

18

2.2.6 Apa Yang Cross Site Scripting Dapat Lakukan?

Kerentanan aplikasi web terhadap celah ini mampu membuat resiko seperti

pencurian account pengguna. Hal ini cukup berbahaya karena privasi

seseorang dapat terganggu. Contoh potongan kode dari suatu aplikasi web

yang tidak tersanitasi dengan baik dapat digambarkan seperti berikut ini :

http://www.target.com/search.php?q=%3Ciframe%20src=%22http://jospyro. blogspot.com%22%20width=800%20height=800%3E%3C/iframe%3E

maka serangan tersebut akan dieksekusi dan hasilnya adalah sebagai berikut

:

Gambar 2.6 Contoh kasus cross site scripting

Link yang digunakan oleh penyerang berisi kode yang menampilkan

halaman dengan kerangka yang berasal dari site asli namun dengan isi sesuai

dengan yang diinginkan penyerang. Dalam melakukan XSS, dapat

menginjeksikan tag HTML, Java Script atau Script Client Side lainnya.

Hasil injeksi yang dilakukan memiliki 2 sifat tergantung dimana injeksi

serangan XSS tersebut dilakukan. Jika injeksi XSS dilakukan pada suatu

variabel yang hanya melewatkan parameter tanpa menyimpannya di

database, maka hasilnya hanya bersifat temporary (sementara). Akan tetapi

(32)

Blog dan yang sejenisnya dan dilakukan serangan XSS, maka hasil serangan

tersebut akan bersifat permanen karena script yang di injeksikan tersimpan

didalam database. Kode Java Script yang diinjeksikan tidak harus berupa

message box. Misalnya saja ingin membuat suatu halaman baru menuju

target.com ketika halaman yang diinjeksi di laod oleh user, maka bisa

menginjeksikan script berikut:

<script>window.open("http://www.target.com/")</script>

Seperti yang sudah dicontohkan di awal pembahasan artikel ini, Anda juga

bisa menginjeksikan tag-tag HTML. Misalnya saja:

<H1> HACK BY JO_SPYRO </H1>

(33)

20

Jadi juga bisa menginjeksikan script yang akan menampilkan animasi

Flash, me-load file-file musik, dan lain sebagainya, sesuai dengan

kreatifitas.( http://www.spyrozone.net)

2.3 JAVA

Java diciptakan pada tahun 1991 oleh James Gosling et al. dari Sun

Microsystems, pada awalnya disebut dengan Oak, diambil dari nama pohon

diluar jendela Gosling. Namanya berubah menjadi Java karena sudah ada

bahasa lain yang bernama Oak. Java merupakan sebuah bahasa pemrograman

komputer berbasiskan kepada Object Oriented Programming. Java diciptakan

setelah C++ dan didesain sedemikian sehingga ukurannya kecil, sederhana,

dan portable (dapat dipindah-pindahkan di antara bermacam platform dan

sistem operasi). Java pertama kali diluncurkan pada tahun 1995 sebagai

bahasa pemrograman umum dengan kelebihan bisa dijalankan di web

browser sebagai applet. Langkah pertama yang diambil oleh Sun

Microsystem adalah dengan membuat JVM(Java Virtual Machine) yang

kemudian diimplementasikan dalam bentuk JRE(Java Runtime Environment).

JVM adalah lingkungan tempat eksekusi program java berlangsung dimana

para objek saling berinteraksi satu dengan lainnya. Virtual machine inilah

yang menyebabkan Java mempunyai kemampuan penanganan memori yang

lebih baik, keamanan yang lebih tinggi serta portabilitas yang besar. Untuk

lebih meningkatkan produktivitas pengembang perangkat lunak maka

diluncurkan SDK(Standard Development Kit) yang berisi kakas dan API

untuk membuat aplikasi berbasis Java. Java memiliki beberapa kelebihan

yaitu :

a. Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip

tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram

cukup menulis sebuah program Java dan dikompilasi (diubah, dari

bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode)

sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa

(34)

java dikerjakan diatas operating system Linux tetapi dijalankan

dengan baik di atas Microsoft Windows. Platform yang didukung

sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun

Solaris. Penyebabnya adalah setiap sistem operasi menggunakan

programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk

meninterpretasikan bytecode tersebut.

b. OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek.

Java merupakan salah satu bahasa pemrograman berbasis objek secara

murni. Semua tipe data diturunkan dari kelas dasar yang disebut

Object. Hal ini sangat memudahkan pemrogram untuk mendesain,

membuat, mengembangkan dan mengalokasi kesalahan sebuah

program dengan basis Java secara cepat, tepat, mudah dan

terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa

pemograman termudah, bahkan untuk fungsi - fungsi yang advance

seperti komunikasi antara komputer sekalipun.

c. Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang

disertakan dalam pemrograman java) yang sangat memudahkan dalam

penggunaan oleh para pemrogram untuk membangun aplikasinya.

Kelengkapan perpustakaan ini ditambah dengan keberadaan

komunitas Java yang besar yang terus menerus membuat

perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan

pembangunan aplikasi.

d. Bergaya C++, memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke Java.

Saat ini pengguna Java sangat banyak, sebagian besar adalah

pemrogram C++ yang pindah ke Java. Universitas-universitas di

Amerika Serikat juga mulai berpindah dengan mengajarkan Java

kepada murid-murid yang baru karena lebih mudah dipahami oleh

murid dan dapat berguna juga bagi mereka yang bukan mengambil

(35)

22

e. Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan

pengaturan memori secara langsung (seperti halnya dalam bahasa

C++ yang dipakai secara luas).

f. Secure. Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk

menjaga aplikasi tidak digunakan untuk merusak sistem komputer

yang menjalankan aplikasi tersebut.

g. Portable. Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.

Hal ini menyebabkan source code Java yang telah dikompilasi

menjadi Java bytecodes dapat dijalankan pada platform yang

berbeda-beda.

h. Multithreaded. Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus

dan simultan.

i. Dynamic. Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan

properties ataupun method dapat

dilakukan tanpa menggangu program yang menggunakan class

tersebut.

Dan Java juga mempunyai beberapa fitur - fitur yang dimiliki diantaranya :

a. Java Virtual Machine (JVM) . JVM adalah sebuah mesin imajiner (maya) yang bekerja dengan menyerupai aplikasi pada sebuah mesin

nyata. JVM menyediakan spesifikasi hardware dan platform dimana

kompilasi kode Java terjadi. Spesifikasi inilah yang membuat aplikasi

berbasis Java menjadi bebas dari platform manapun karena proses

kompilasi diselesaikan oleh JVM. Aplikasi program Java diciptakan

dengan file teks berekstensi .java. Program ini dikompilasi

menghasilkan satu berkas bytecode berekstensi .class atau lebih.

(36)

Perbedaannya adalah kode mesin harus dijalankan pada sistem

komputer dimana kompilasi ditujukan, sementara bytecode berjalan

pada java interpreter yang tersedia di semua platform sistem

komputer dan sistem operasi.

b. Garbage Collection. Banyak bahasa pemrogaman lain yang mengijinkan seorang pemrogram mengalokasikan memori pada saat

dijalankan. Namun, setelah menggunakan alokasi memori tersebut,

harus terdapat cara untuk menempatkan kembali blok memori tersebut

supaya program lain dapat menggunakannya. Dalam C, C++ dan

bahasa lainnya, adalah pemrogram yang mutlak bertanggung jawab

akan hal ini. Hal ini dapat menyulitkan bilamana pemrogram tersebut

alpa untuk mengembalikan blok memori sehingga menyebabkan

situasi yang dikenal dengan nama memory leaks. Program Java

melakukan garbage collection yang berarti program tidak perlu

menghapus sendiri objek – objek yang tidak digunakan lagi. Fasilitas

ini mengurangi beban pengelolaan memori oleh pemrogram dan

mengurangi atau mengeliminasi sumber kesalahan terbesar yang

terdapat pada bahasa yang memungkinkan alokasi dinamis.

c. Code Security. Code Security terimplementasi pada Java melalui penggunaan Java Runtime Environment (JRE). Java menggunakan

model pengamanan 3 lapis untuk melindungi sistem dari untrusted

Java Code :

1. Pertama, class-loader menangani pemuatan kelas Java ke runtime

interpreter. Proses ini menyediakan pengamanan dengan

memisahkan kelas – kelas yang berasal dari local disk dengan

kelas – kelas yang diambil dari jaringan. Hal ini membatasi

aplikasi Trojan karena kelas – kelas yang berasal dari local disk

yang dimuat terlebih dahulu.

2. Kedua, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan – aturan dasar bahasa

(37)

24

3. Ketiga, manajemen keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses

sumber daya seperti sistem file, port jaringan, proses eksternal dan

sistem windowing. Setelah seluruh proses tersebut selesai

dijalankan, barulah kode program di eksekusi.

Java juga menyediakan beragam teknik pengamanan lain :

a. Bahasa dirancang untuk mempersulit eksekusi kode perusak. Peniadaan pointer merupakan langkah besar pengamanan. Java tidak

mengenal operasi pointer. Di tangan pemrogram handal, operasi

pointer merupakan hal yang luar biasa untuk optimasi dan pembuatan

program yang efisien serta mengagumkan. Namun mode ini dapat

menjadi petaka di hadapan pemrogram jahat. Pointer merupakan

sarana luar biasa untuk pengaksesan tak diotorisasi. Dengan peniadaan

operasi pointer, Java dapat menjadi bahasa yang lebih aman.

b. Java memiliki beberapa pengaman terhadap applet. Untuk mencegah

program bertindak mengganggu media penyimpanan, maka applet

tidak diperbolehkan melakukan open, read ataupun write terhadap

berkas secara sembarangan. Karena Java applet dapat membuka

jendela browser yang baru, maka jendela mempunyai logo Java dan

teks identifikasi terhadap jendela yang dibuka. Hal ini mencegah

jendela pop-up menipu sebagai permintaan keterangan username dan

password.

(http://id.wikipedia.org/wiki/Java)

2.4PHP

PHP adalah 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

(38)

CGI/Perl. Contoh aplikasi lain 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

modul-modul 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 bahasa pemrograman ke arah paradigma berorientasi objek.

kelebihan PHP dari bahasa pemrograman lain :

a. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak

(39)

26

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.

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 2n. Jika tipe bilangan bulat tersebut

adalah bilangan bulat tak bertanda, maka jangkauannya adalah dari 0

(40)

2. Double

Double adalah deklarasi untuk tipe data numerik bilangan pecahan secara

default menggunakan

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.

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 ""

(41)

28

Kode program PHP menyatu dengan tag-tag HTML dalam satu file. Kode

PHP diawali dengan tag <? atau <?php dan ditutup 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:

Echo “Selamat menggunakan PHP”;

?>

</CENTER>

</BODY>

</HTML>

Pada contoh program diatas terdapat satu baris perintah PHP, yaitu

<?

Echo “Selamat menggunakan PHP”;

?>

Perintah ini dibuka dengan tag <? dan ditutup 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

(42)

2.5My SQL

MySQL adalah database yang paling banyak dipakai. Menurut perusahaan

pengembangnya, MySQL telah terpasang di sekitar 3 juta komputer. Puluhan

hingga ratusan ribu situs mengandalkan MySQL bekerja siang malam

memompa data bagi para pengunjungnya. Penyebab utama MySQL begitu

popular di kalangan Web maupun Desktop adalah karena ia memang cocok

bekerja di lingkungan tersebut. Pertama, MySQL tersedia di berbagai platform

Linux dan berbagai varian Unix. Sesuatu yang tidak dimiliki MS Access,

misalnya—padahal MS Access amat popular di platform Windows. Banyak

server Desktop berbasiskan Unix, ini menjadikan MS Access otomatis tidak

dapat dipakai karena ia pun tidak memiliki kemampuan

client-server/networking.(Bimo, 2003). Kedua, fitur-fitur yang dimiliki MySQL

memang yang biasanya banyak dibutuhkan dalam aplikasi Desktop. Misalnya,

klausa Limit SQL-nya, praktis untuk melakukan paging. Atau jenis indeks

field Fultext, untuk full text searching. Atau sebutlah kekayaaan fungsi-fungsi

builtinnya, mulai dari memformat dan memanipulasi tanggal, mengolah

string, regex, enkripsi dan hashing. Yang terakhir misalnya, praktis untuk

melakukan penyimpanan password anggota situs. Sementara fitur-fitur yang

lebih jarang digunakan belum atau baru muncul saja di versi-versi terakhir.

Subselek misalnya, sampai saat ini tidak ada di MySQL. Atau view, atau

stored procedure, atau trigger. Ini membuat MySQL tetap langsing dan cepat,

tapi pengembang aplikasi bisnis mungkin jadi berkerut muka mengetahui ini,

karena fitur-fitur yang hilang ini seringkali mereka pakai untuk

menyederhanakan logika aplikasi mereka. Sebelum versi 3.23.15 sekitar dua

tahun yang lalu MySQL tidak bisa melakukan transaksi sama sekali. dengan

produk yang satu ini. MySQL adalah database yang paling banyak dipakai.

Menurut perusahaan pengembangnya, MySQL telah terpasang di sekitar 3 juta

komputer. Puluhan hingga ratusan ribu situs mengandalkan MySQL bekerja

(43)

30

Tabel 2.3 Tipe Data Dalam My SQL

Ketiga, MySQL memiliki overhead koneksi yang rendah. Soal kecepatan

melakukan transaksi atau kinerja di kondisi load tinggi mungkin bisa

diperdebatkan dengan berbagai benchmark berbeda, tapi kalau soal yang satu

ini MySQL-lah juaranya. Karakteristik ini membuat MySQL cocok bekerja

dengan aplikasi CGI, di mana di setiap request skrip akan melakukan koneksi,

mengirimkan satu atau lebih perintah SQL, lalu memutuskan koneksi lagi.

Cobalah melakukan hal ini dengan Interbase atau bahkan Oracle. Maka

dengan load beberapa request per detik saja server Desktop/database mungkin

akan segera menyerah karena tidak bisa mengimbangi beban ini.

Dalam bahasa SQL pada umumnya informasi tersimpan dalam tabel-tabel

yang secara logik merupakan struktur dua dimensi terdiri dari baris (row atau

record) dan kolom(column atau field). Sedangkan dalam sebuah database

dapat terdiri dari beberapa table. Beberapa tipe data dalam MySQL yang

sering dipakai.

2.6HTML (Hyper Text Markup Language)

Di dalam desain web, tidak akan bisa lepas dengan yang namanya HTML

(Hypertext Markup Language). HTML adalah bahasa standar yang

digunakan untuk menyusun/membangun suatu halaman web. Meskipun telah

muncul software-software yang dapat digunakan untuk membangun suatu

halaman web tanpa susah-susah memperhatikan struktur HTML-nya, tidak ada

salahnya kalau HTML itu sendiri dipelajari. Manfaat yang diperoleh

(44)

dapat dikembangkan untuk pemrograman web. Pemrograman web akan selalu

terkait dengan HTML tersebut. Pemrograman web biasanya dikembangkan

untuk membangun web yang dinamis.Setiap homepage yang dikunjungi, pasti

bisa dijumpai HTML-nya yang selanjutnya disebut SOURCE.

2.6.1 Struktur HTML

Bahasa HTML (tag) dapat ditulis/dibuat melalui berbagai macam word

editor, misalnya Notepad, Wordpad, PHP Designer 2005, dll. Tag-tag

tersebut dapat dituliskan dengan huruf besar ataupun huruf kecil.

Setelah tag HTML ditulis dengan menggunakan Notepad atau word

editor yang lain, simpanlah file tersebut dengan format file

nama_file.htm atau nama_file.html. Sebagai contoh, file HTML tersebut

disimpan dengan nama index.htm atau index.html. Adapun struktur HTML

adalah sbb:

a. Tag HTML secara default dimulai dari <HTML> dan diakhiri dengan

</HTML>.

b. Tag <HEAD> … </HEAD> merupakan tag kepala sebelum badan.

Tag kepala ini akan terlebih dulu dieksekusi sebelum tag

badan. Di dalam tag ini berisi tag <META> dan <TITLE>.

Tag <META> merupakan informasi atau header suatu dokumen

(45)

32

c. HTTP_EQUIV, atribut ini berfungsi untuk menampilkan

dokumen HTML secara otomatis dalam jangka waktu tertentu.

d. CONTENT, atribut ini berisi informasi tentang isi document

HTML yang akan dipanggil.

e. NAME, atribut ini merupakan identifikasi dari meta itu sendiri. Tag

<META> dalam suatu document HTML boleh ada maupun tidak.

Sedangkan tag <TITLE> … </TITLE> adalah tag judul. Sebaiknya

setiap halaman web memiliki judul, dan judul tersebut dituliskan

di dalam <TITLE> … </TITLE>. Judul ini akan muncul dalam

titlebar dari browser.

f. Sedangkan tag <BODY> … </BODY> adalah tag berisi content dari

suatu halaman web.

Setelah tag tersebut di atas ditulis, simpan dalam format .htm

atau .html (misal index.htm) akan tetapi terlebih dahulu ubah Save

as type ke dalam All Files. Kemudian tentukan letak direktori mana

file tersebut akan disimpan, selanjutnya klik Save. Selanjutnya document

HTML tersebut dipanggil dengan browser untuk melihat hasilnya.

Dari tampilan pada browser di atas, dapat terlihat bahwa apa yang ditulis

pada

“ <TITLE> … </TITLE> akan muncul pada titlebar browser dan apa

yang ditulis pada <BODY> … </BODY> akan muncul pada halaman

web.Untuk selanjutnya, kita hanya akan memperhatikan tag-tag yang

ada di dalam <BODY> … </BODY> karena bentuk tampilan/desain web

tergantung pada tag yang ditulis di dalam <BODY> … </BODY> ”.

2.7WEB SERVER

Web Server atau Server Web merupakan sebuah perangkat lunak server yang

berfungsi menerima permintaan HTTP atau HTTPS dari klien yang dikenal

dengan broser web dan mengirimkan kembali hasilnya dalam bentuk

(46)

dasarnya web server hanyalah sebuah perangkat lunak yang bisa saja berada di

computer apapun dengan spesifikasi apapun. PC biasa pun dapat berfungsi

sebagai web server. Karena web server hanyalah suatu perangkat lunak, saat

ini banyak pilihan yang dapat kita pilih. Mulai dari yang gratis (free) sampai

yang berbayar, mulai dari yang kompleks sampai yang bias berjalan di CD.

Beberapa diantaranya yang cukup banyak digunakan adalah apache web

server, internet information services (IIS), xitami, PWS, dsb.

2.7.1 Cara Kerja Web Server

prinsip atau cara kerja web server itu sendiri? Cukup sederhana untuk

dipahami, karena pada dasarnya tugas web server hanya ada 2 (dua), yaitu:

a. Menerima permintaan (request) dari client.

b. Mengirim apa yang diminta oleh client (response).

Gambar 2.8 Cara kerja web server

Penjelasan gambar 2.8 :

1. Client disini dapat berupa computer desktop dengan minimal memiliki

browser dan ter hubung ke web server melalui jaringan (intranet atau

internet).

2. Komputer yang berfungsi sebagai server, dimana didalamnya terdapat

perangkat lunak web server. Agar computer ini dapat diakses oleh

client maka computer harus terhubung ke jaringan (intranet atau

internet). Dalam jaringan internet, computer ini biasa saja bernama

www.google.com. www.bl.ac.id atau memiliki kode computer (disebut

(47)

34

3. Pertama-tama, client (user) akan meminta suatu halaman ke (web)

server untuk ditampilkan di computer client. Misalnya client

mengetikan suatu alamat (biasa disebut URL) di browser

http://www.google.com. Client menekan tombol enter atau klik tombol

Go pada browser. Lalu apa yang terjadi? Melalui media jaringan (bisa

internet, bisa intranet) dan melalui protocol http,akan dicarilah

computer bernama www.google.com. Jika ditemukan, maka

seolah-olah terjadi permintaan, “hai google, ada client yang minta halaman

utama nih, ada dimana halamanya?”. Inilah yang disebut request.

4. Sekarang dari sisi server (web server). Mendapat permintaan halaman

utama google dari client, si server akan mencari-cari di komputernya

halaman sesuai permintaan. Jika ditemukan, maka halaman yang

diminta akan dikirimkan ke client (si peminta), namun jika tidak

(48)

3.1DESAIN SISTEM

Prosedur perancangan sistem secara umum untuk pembangunan Aplikasi Web

Vulnearbility Scanner terhadap kelemahan XSS dan SQL Injection

menggunakan Java ini terdiri atas beberapa tahap, antara lain meliputi

perancangan :

a. Data

Perancangan data yang dimaksudkan adalah perancangan data-data yang

berkaitan dengan pembuatan perangkat lunak, meliputi :

1. Data input

Termasuk di dalamnya data-data penunjang sebagai inputan

pembuatan sistem.

2. Data output

Dari data input di atas, sistem akan menggunakannya hingga

didapatkan kesimpulan sebagai output sistem.

b. Proses

Perancangan proses yang dimaksudkan adalah bagaimana sistem akan

bekerja, proses-proses yang digunakan, mulai dari masuknya data input

yang kemudian diproses oleh sistem hingga menjadi data output.

c. Antarmuka

Perancangan antarmuka mengandung penjelasan tentang desain dan

implementasi sistem yang digunakan dalam sistem yang kita dibuat.

Secara keseluruhan perancangan sistem atau desain sistem yang akan

dibangun :

(49)

36

Aplikasi

Server

Hasil Injeksi

Gambar 3. 1 Perancangan Sistem secara global

Dari gambar 3.1 dapat diketahui :

1. Aplikasi yang dibangun melakukan request ke server berupa URL yang

diinputkan

2. Server memberikan respon berupa HTML

3. Aplikasi mencari respon HTML tersebut, kemudian mendapatkan struktur

URL dari hasil pencarian dan menginjeksi struktur URL tersebut dengan

script clientside yang diambil dari Datatext

4. Aplikasi mengirim request ke server berupa struktur hasil pencarian yang

telah di injeksi

5. Server mengirim respon hasil injeksi ke aplikasi

6. Aplikasi memberikan report hasil keseluruhan

3.2PERANCANGAN SISTEM

Perancangan sistem ini terdiri atas 2 basis yang akan diuraikan pada sub bab

di bawah ini :

1. Web Vulnerability Scanner Berbasis Online

Pada Web Vulnerability Scanner berbasis online ini berjalan dengan

menggunakan koneksi internet. Begitu juga dengan web yang akan di scan

adalah web yang berada di internet. Input dari web vulnerability scanner

(50)

2. Web Vulnerability Scanner Berbasis Offline

Web Vulnerability Scanner berbasis offline ini berjalan secara offline atau

tanpa terkoneksi pada internet. Web yang akan di scan oleh web

vulnerability scanner berbasis offline ini adalah web yang berada pada

computer local yang dijalankan dengan menggunakan aplikasi webserver.

Dengan syarat ketentuan web yang akan discan secara offline harus sudah

tersimpan di htdocs Xampp dan file sql data base juga tersimpan di

MySQL DBMS.

3.3 PERANCANGAN DATA INPUT

Dalam perancangan data input, akan dijelaskan mengenai data-data yang

terdapat dalam sistem sesuai dengan fungsinya sebagai data input sistem.

1. DATA INPUT WEB VULNERABILITY BERBASIS ONLINE

Untuk menjalankan web vulnerability scanner berbasis online ini

menggunakan input berupa :

a. URL

Pada aplikasi ini dibutuhkan input URL yang digunakan untuk

mengakses suatu web. URL tersebut kemudian digunakan untuk

melakukan request kepada server sehingga server tersebut

memberikan respon berupa HTML kepada client. Dan respon berupa

HTML tersebut itulah yang akan di scan. Contoh suatu URL :

http://www.target.com

2. DATA INPUT WEB VULNERABILITY BERBASIS OFFLINE

Untuk menjalankan web vulnerability scanner berbasis offline ini

diperlukan input berupa :

a. URL

Pada aplikasi ini dibutuhkan input URL yang digunakan untuk

mengakses suatu web. URL tersebut kemudian digunakan untuk

(51)

38

memberikan respon berupa HTML kepada client. Dan respon berupa

HTML tersebut itulah yang akan di scan. Contoh suatu URL :

http://www.target.com

3.4 PERANCANGAN PROSES

Perancangan proses pada bagian ini akan menjelaskan tentang bagaimana

sebuah input dari user akan diproses menjadi sebuah output yang diharapkan.

3.4.1 Proses Scanning

Pada perancangan sistem aplikasi ini, disediakan form untuk scanning yang

berfungsi untuk men-scan suatu web untuk mendeteksi terhadap kelemahan

XSS. Berikut diagram alur dari proses Scan XSS :

Gambar

Gambar 2.6 Contoh kasus cross site scripting
Gambar 2.7 Contoh kasus cross site scripting
Gambar 3. 2 Diagram Alur Scan XSS
Gambar 3. 3 Proses Injeksi XSS Tidak Valid
+7

Referensi

Dokumen terkait

Aplikasi ini akan menyerupai penggabungan forum dan chat room , sehingga setiap orang yang tergabung dalam suatu proyek dapat berkomunikasi dengan mudah,

Sedangkan data yang dapat diambil dari aplikasi kateglo antara lain fitur sinonim, antonim, kata jadian, kata majemuk yang juga aplikasi kateglo ini juga

Pemilihan ini didasarkan atas kemampuan PHP yang cukup handal (powerfull) dalam membuat script- script pemrograman berbasis web. Untuk mengelola data-data

Kebocoran informasi penting merupakan hal yang dapat terjadi jika kelemahan ini tidak ditangani dengan baik.Penelitian ini bertujuan mempelajari bagaimana cara kerja

menggambarkan dekomposisi fungsi aplikasi kepegawaian yang dibuat dalam penelitian ini yang terdiri dari data absen, data user, data pegawai, data pengumuman, data gaji, data

Adapun tahapan-tahapan yang dilakukan dalam pembangunan aplikasi absensi ini meliputi proses analisis yang terdiri dari analisis kebutuhan aplikasi dan arsitektur

Proses absensi dapat dilakukan dengan menscan kode Barcode yang telah dipersiapkan menggunakan aplikasi yang telah diinstal pada Smartphone selanjutnya mahasiswa akan mengirim

Dalam proses pengembangan aplikasi penayangan peta dasar ini, software yang digunakan adalah Software Map Server for Windows (MS4W), merupakan aplikasi perangkat