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

(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 KETERANGAN REVISI

MOTTO ABSTRAKSI

KATA PENGANTAR .……… ix

DAFTAR ISI ……… xiii

DAFTAR TABEL ……… xv

DAFTAR GAMBAR ……… xvi

BAB I PENDAHULUAN ………. 1

1.1 Latar Belakang Masalah ………... 1

1.2 Perumusan Masalah ……….. 3

1.3 Batasan Masalah ………... 4

1.4 Tujuan ………... 4

1.5 Manfaat Sistem Bagi Pengguna ……….….. 4

1.6 Metodelogi ………... 5

1.7 Sistematika Penulisan …………...……….……….. 6

BAB II LANDASAN TEORI ……….………. 8

2.1 Web ……….………. 8

2.2 XSS (Cross Site Scripting) ...…...………. 12

2.2.1 Cara Kerja Cross Site Scripting ... 12


(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

2.4 PHP... ... 29

2.5 MY SQL ... 34

2.6 HTML (Hyper Text Markup Language) ... 36

2.6.1 Struktur HTML ... 37

2.7 Web Server ... 39

2.7.1 Cara Kerja Web Server …………...………... 40

BAB III PERANCANGAN ... 42

3.1 Desain Sistem ………... 42

3.2 Perancangan Sistem ……... 43

3.3 Perancangan Data Input.. ... 44

3.4 Perancangan Proses ... 45

3.4.1 Proses Scanning ………... 45

3.5 Perancangan Antar Muka ….………….…..……….. 49

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.1 Form Halaman Utama ...……... 50

Gambar 5.2 Tampilan Awal Website Target …...…….... 51

Gambar 5.3 Form Scanning XSS ……...….. ... 52

Gambar 5.4 Proses Scan XSS Telah Selesai ..…...……... 53

Gambar 5.5 Laporan Scan XSS ……...……... 53

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 Windows


(19)

6

BAB VI PENUTUP

Bab ini berisi kesimpulan dari uji coba perangkat lunak, dan saran untuk pengembangan, perbaikan serta penyempurnaan terhadap aplikasi yang telah dibuat.


(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 menunjukkan perbedaan tersebut.


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


(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. Gambar 2.3 menunjukkan alur dari kejadian tersebut.


(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 tulis berhasil diinjeksikan. Jika injeksi berhasil dilakukan, contoh link


(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 <COMMENT> <script> </COMMENT> <script>code</script> <COMMENT> </COMMENT>

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 telah terkodekan seperti ditunjukkan pada Tabel 2.5 Jika kode yang akan


(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 akan menampilkan halaman yang diminta.


(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 perubahan. Kelebihan ini memungkinkan sebuah program berbasis


(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 jurusan komputer.


(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 Microsoft, ColdFusion Macromedia, JSP/Java Sun Microsystems, dan


(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 melakukan sebuah kompilasi dalam penggunaanya.


(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 hingga 2n-1.


(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:

<HTML> <HEAD> <TITLE>Pemrograman PHP</TITLE> </HEAD> <BODY> <CENTER> <?

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 dituliskan <? Echo“Selamat menggunakan PHP”?>.


(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 siang malam memompa data bagi para pengunjungnya.


(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 apabila mempelajari HTML selain mampu membangun halaman web, juga


(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:

<HTML> <HEAD> <META>

<TITLE> … </TITLE> </HEAD> <BODY> … </BODY> </HTML> Keterangan:

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 HTML. Atribut yang dimiliki oleh tag ini antara lain:


(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 halaman-halaman web yang umumnya berbentuk dokumen HTML. Jadi, pada


(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 IP Address) seperti 202.10.20.10 dan 200.100.50.25.


(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 ditemukan, maka server akan memberi pesan “404. page Not Found”,


(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 berbasis online ini adalah berupa URL dari web yang akan di scan.


(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 melakukan request kepada server sehingga server tersebut


(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 :


(52)

Penjelasan dari Gambar 3.2 adalah

1. Aplikasi WVS melakukan request ke server berupa URL yang telah di inputkan oleh pengguna.

2. Server memberikan respon berupa file-file html yang di minta aplikasi

WVS sesuai input URL.

3. Kemudian aplikasi WVS mencari kelemahan setiap file-file html yang telah diberikan oleh server.

4. Aplikasi WVS menangkap semua tag <a herf> dari file-file html sudah didapatkan dari server.

5. Proses pengecekan apakah ada parameternya atau tidak, jika tidak ada maka aplikasi akan kembali lagi melakukan proses ke 3 tetapi jika ada maka akan lanjut ke proses selanjutnya.

6. Proses selanjutnya aplikasi menulis ulang parameter tersebut dengan

script injeksi yang diambil dari datatext.

7. Lalu aplikasi mengirim ulang ke server berupa URL yang parameternya telah di injeksi.

8. Server memberikan respon berupa HTML, kemudian HTML tersebut di

scan.

9. Apkah pada respon HTML tersebut terdapat script yang diinjeksikan, jika ya maka web tersebut mempunyai kelemahan dan jika tidak maka web tersebut tidak mempunyai kelemahan terhadap serangan XSS.

Untuk memudahkan pemahaman, maka diberikan contoh seperti berikut : “Ketika memasukkan suatu kata di url, misalnya saja mengetikkan

http://www.target.com/search.php?q= HACK BY JO_SPYRO

maka kata yang sudah diketikkan akan ditampilkan pada hasil pencarian, dalam hal ini kata HACK BY JO_SPYRO akan ditampilkan. Biasanya berupa kata-kata:


(53)

40

Gambar 3. 3 Proses Injeksi XSS Tidak Valid

atau yang mirip dengan itu, lalu diikuti hasil pencarian. Apabila menginputkan text biasa. Coba inputkan tag HTML, misalnya saja:

http://www.target.com/search.php?q=<h1>HACK BY JO_SPYRO

</h1>

Jika kemudian kata HACK BY JO_SPYRO berubah menjadi berukuran jumbo seperti ini:


(54)

Gambar 3. 4 Proses Injeksi XSS Valid

Maka berarti pada situs tersebut terdapat kelemahan XSS. Hasil injeksi yang dilakukan aplikasi tentu saja hanya dapat dilihat oleh si Attacker sendiri karena bersifat temporary.

3.5 PERANCANGAN ANTARMUKA

Perancangan antar muka bertujuan untuk menjelaskan alur dari proses mencari kelamahan suatu web secara online dan offline

3.5.1 Blok Arsitektur Sistem WVS Online

Untuk perancangan antar muka aplikasi WVS berbasis Online, di bawah ini akan ditunjukkan blok arsitektur sistem dari web vulnerability scanner berbasis online yang digunakan pada proyek akhir ini :


(55)

42

Aplikasi

Server

Hasil Injeksi

Gambar 3.5 Blok Arsitektur Sistem WVS berbasis online

Dari Gambar 3.4 dapat diketahui :

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

2. Server memberikan respon berupa HTML

3. Aplikasi WVS mencari respon HTML tersebut, kemudian mendapatkan struktur URL dari hasil scan dan menginjeksi parameter dari struktur URL tersebut dengan script SQL dan script clientside yang diambil dari

Datatext

4. Aplikasi WVS mengirim request ke server berupa struktur URL hasil pencarian yang telah di injeksi

5. Server mengirim respon hasil injeksi ke aplikasi WVS 6. Aplikasi WVS memberikan report hasil keseluruhan

3.5.2 Blok Arsitektur sistem WVS berbasis Offline

Untuk perancangan antar muka aplikasi WVS berbasis Offline, di bawah ini akan ditunjukkan blok arsitektur sistem dari web vulnerability scanner berbasis offline yang digunakan pada proyek akhir ini :


(56)

Aplikasi

Hasil Injeksi

Gambar 3. 6 Blok Arsitektur Sistem WVS berbasis offline

Penjelasan dari Gambar 3.5 adalah :

1. Aplikasi yang dibangun mengambil input berupa file .SQL dan file yang berisi file-file web yang akan di cari

2. File Web dan file .SQL tersebut dikirim ke Aplikasi WVS. Kemudian

aplikasi WVS akan mencari file .PHP yang telah di inputkan dengan melalui http://localhost/BITWVS

3. Dalam proses scan aplikasi WVS menginjeksikan script yang diambil dari data text.


(57)

BAB IV IMPLEMENTASI 4.1 IMPLEMENTASI SISTEM

Dari desain sistem yang telah dibuat sebelumnya, maka dapat di implementasikan seperti beberapa contoh tampilan berikut : 1. Tampilan utama

Ini merupakan tampilan awal pada saat aplikasi di panggil

Gambar 4.1 Tampilan Menu Utama

2. Halaman WVS Scan XSS

Halaman ini berfungsi untuk melakukan scanning kelemahan web dengan cara memasukkan url website target di text filed yang telah disediakan


(58)

Gambar 4.2 Halaman WVS Scan XSS

Berikut adalah potongan script dari Proses Scan XSS Online :


(59)

46

3. Tampilan Laporan Scan XSS

Tampilan ini berfungsi untuk melihat hasil scanning web yang telah dilakukan oleh aplikasi

Gambar 4.4 Tampilan Laporan Scan XSS

4. Laporan Scanning Terakhir

Halaman ini berfungsi sebagai history setelah aplikasi mencari kelemahan

web yang telah dilakukan oleh aplikasi pada waktu terakhir kali

pemakaian. Jadi apabila aplikasi telah digunakan untuk menscan 10

website maka yang tampil di history adalah website yang ke-10 dan hasil

scanning website yang ke-1 sampai ke-9 tidak akan tampil. Tampil yang dimaksud adalah menampilkan semua kelemahan yang telah diinjeksikan oleh aplikasi.


(60)

Berikut adalah potongan script dari proses menampilkan Laporan

Scanning Terakhir :

Gambar 4.6 Potongan script laporan scanning terakhir

5. Fitur Help

Halaman ini berfungsi untuk tata cara penggunaan aplikasi. Jadi pada saat merasa kesulitan menggunakan aplikasi tersebut bisa melihat manual book penggunaan aplikasi melalui fitur help ini.


(61)

48


(62)

Pengujian dan analisa adalah tahap yang penting dalam pengerjaan proyek akhir ini. Dari hasil-hasil yang diperoleh, akan dapat dijadikan sebagai parameter yang penting dalarn pengembangan selanjutnya jika masih diperlukan suatu penyempurnaan. Pada bab ini akan dibahas mengenai cara kerja sistem dan proses-proses yang terjadi pada pelaksanaan uji coba serta analisa terhadap aplikasi yang telah dibangun.

5.1LINGKUNGAN PENGUJIAN

Pengujian dilakukan dengan sistem hardware sebagai berikut:

1. Komputer dengan spesifikasi Pentium Dual Core 2,6 GHz, RAM 2GB,

2. Harddisk 250GB, VGA Onboard

3. Sistem Operasi Windows XP profesional edition Service Pack

4. CPU yang telah terinstall Java Virtual Machine yang berguna untuk

menjalankan aplikasi ini yang dibuat menggunakan bahasa pemrograman

Java.

5. Komputer yang terkoneksi Internet

5.2 Uji Coba

Ini tahap uji coba aplikasi web vulnerability scanner baik secara online (aplikasi terkoneksi kepada internet).maupun offline (via localhost).


(63)

50

5.2.1 Aplikasi Web Vulnerability Scanner

Gambar 5. 1 Form Halaman Utama

Pada Gambar 5.1 diatas terdapat Form Menu Utama, pada form tersebut terdapat 1 buah tombol dan 3 buah menu sebagai berkut :

Tombol Scan XSS didalam panel WVS digunakan untuk melakukan

proses scanning pada suatu web terhadap kelemahan XSS secara online atau dengan kata lain terhubung dengan internet dan secara offline atau dengan kata lain terhubung dengan localhost.

Menu File : menu ini berfungsi untuk ingin keluar dari penggunaan

aplikasi

Menu Laporan : menu ini berfungsi untuk melihat hasil scanning

terakhir pada aplikasi

Menu Bantuan : menu ini berfungsi untuk memberikan informasi tata


(64)

5.2.2 Proses Scanning Secara Online

Proses ini dilakukan dengan syarat aplikasi harus terhubung dengan koneksi internet untuk melakukan pencarian kesalahan terhadap website yang akan dikehendaki:

A. Uji Coba Tingkat Ringan (Low Level)

Yang dimaksud dengan Tingkat Ringan (Low Level) bahwa sang attacker menginjeksikan script clientside yang sangat sederhana yakni menampilkan text atau tulisan yang hanya biasa dilihat oleh komputer sang attacker saja.

1. Contoh uji coba Website dinamis standart

Ini adalah tampilan awal website sebelum dilakukan proses pencarian kelemahan terhadap serangan XSS


(65)

52

Tahap berikutnya ini adalah dimana aplikasi melakukan proses pencarian kesalahan dengan cara menekan tombol Scan XSS lalu masukkan alamat website target:

Gambar 5. 3 Form Scanning XSS

Pada Gambar 5.3 diatas merupakan proses dimana aplikasi mencari semua kelemahan file-file html yang ada di dalam url website tersebut secara online (aplikasi terkoneksi kepada internet). Jadi apabila didalam website tersebut mempunyai file-file html sebanyak 100 file html maka aplikasi secara otomatis akan melakukan pencarian kepada ke 100 file html tersebut dan pada saat itulah aplikasi menginjeksikan script XSS di setiap tag-tag


(66)

html yang dimiliki website tersebut Berikut jika proses Scan XSS telah selesai :

Gambar 5. 4 Proses Scan XSS telah selesai

Setelah proses scanning XSS Online selesai akan muncul Report seperti berikut :


(67)

54

Ini merupakan report kesalahan yang terdapat di website target. Jadi apabila di setiap tag-tag html terdapat kesalahan maka akan muncul di form report ini. Dan hasil akhir proses scanning yang telah dilakukan oleh aplikasi ini adalah :

Vulnerability

Gambar 5. 6 Tampilan awal website yang sudah terinjeksi XSS

Pada tampilan awal website tidak terdapat kata jo_spyro, dikarenakan aplikasi dengan sukses menginjeksikan XSS maka kini tampilan website tersebut terdapat kata jo_spyro.

2. Contoh uji coba Website PHP + JavaScript

Ini adalah tampilan awal website sebelum dilakukan proses pencarian kelemahan terhadap serangan XSS


(68)

Gambar 5. 7 Tampilan awal website target

Tahap berikutnya ini adalah dimana aplikasi melakukan proses pencarian kesalahan dengan cara menekan tombol Scan XSS lalu masukkan alamat website target:


(69)

56

Pada Gambar 5.8 diatas merupakan proses dimana aplikasi mencari semua kelemahan file-file html yang ada di dalam url website tersebut secara online (aplikasi terkoneksi kepada internet). Jadi apabila didalam website tersebut mempunyai file-file html sebanyak 100 file html maka aplikasi secara otomatis akan melakukan pencarian kepada ke 100 file html tersebut dan pada saat itulah aplikasi menginjeksikan script XSS di setiap tag-tag

html yang dimiliki website tersebut Berikut jika proses Scan XSS

telah selesai :

Gambar 5. 9 Proses Scan XSS telah selesai

Setelah proses scanning XSS Online selesai akan muncul Report seperti berikut :


(70)

Gambar 5. 10 Laporan Scan XSS

Ini merupakan report kesalahan yang terdapat di website target. Jadi apabila di setiap tag-tag html terdapat kesalahan maka akan muncul di form report ini. Dan hasil akhir proses scanning yang telah dilakukan oleh aplikasi ini adalah :

Vulnerability


(71)

58

Pada tampilan awal website tidak terdapat kata jo_spyro, dikarenakan aplikasi dengan sukses menginjeksikan XSS maka kini tampilan website tersebut terdapat kata jo_spyro.

3. Contoh uji coba Website PHP + AJAX

Ini adalah tampilan awal website sebelum dilakukan proses pencarian kelemahan terhadap serangan XSS

Gambar 5. 12 Tampilan awal website target

Tahap berikutnya ini adalah dimana aplikasi melakukan proses pencarian kesalahan dengan cara menekan tombol Scan XSS lalu masukkan alamat website target:


(1)

A. proses scan xss terhadap URL http://localhost/webstester/ didapatkan 7 buah link :

 http://localhost/webstester/index.php?id=  http://localhost/webstester/daftar.php

 http://localhost/webstester/ vuln.php?status=

masing-masing link diatas yang memiliki parameter di injeksikan dengan salah satu script clientside yang diambil dari datatext :

"><H1><c e nte r><b link><b r><fo nt+c o lo r=g re e n+size =50>JO _SPYRO <b r>< / b link></ H1><NO SC RIPT>

sehingga menjadi seperti berikut :

1. http://localhost/webstester/index.php?id="><H1><center><blink> <br><font+color=green+size=50>JO_SPYRO<br></blink></H1> <NOSCRIPT>1

2. http://localhost/webstester/daftar.php

3. http://localhost/webstester/vuln.php?status="><H1><center><blin k><br><font+color=green+size=50>JO_SPYRO<br></blink></H 1><NOSCRIPT>ginjal

Dan hasilnya ke tiga link tersebut vulnerable to XSS atau memiliki celah kelemahan terhadap serangan XSS. Karena script yang telah di injeksikan tersebut dieksekusi oleh server. Berikut page source dari url yang telah di injeksi :


(2)

75

Yo u ha ve a n e rro r in yo ur SQ L synta x; c he c k the

ma nua l tha t c o rre sp o nd s to yo ur MySQ L se rve r ve rsio n fo r the rig ht synta x to use ne a r '\">

Dan berikut tampilan dari URL yang telah di injeksi :

vulnerability


(3)

6.1 Kesimpulan a. Scan XSS Online

Dari hasil ujicoba Scan XSS pada Situs http://www.xxx.com didapatkan 3 URL. yaitu :

1. http:// www.xxx.com/index.php?id= 2. http:// www.xxx.com /home.php= 3. http://www.xxx.com/info.php?status=

Masing-masing link diatas yang memiliki parameter di injeksikan dengan satu

script clientside yang diambil dari datatext :

"><H1><c e nte r><b link><b r><fo nt+c o lo r=g re e n+size =50>JO _SPYRO <b r>< / b link></ H1><NO SC RIPT>

Sehingga menjadi seperti berikut :

1. http:// www.xxx.com/index.php?id="><H1><center><blink><br><font+ color=green+size=50>JO_SPYRO<br></blink></H1><NOSCRIPT> 2. http:// www.xxx.com /home.php="><H1><center><blink><br><font+

color=green+size=50>JO_SPYRO<br></blink></H1><NOSCRIPT> 3. http://www.xxx.com/info.php?status="><H1><center><blink><br><font+

color=green+size=50>JO_SPYRO<br></blink></H1><NOSCRIPT>

Dan hasilnya 3 script yang di injeksikan tersebut dieksekusi, sehingga ditemukan kelemahan XSS. Yaitu terjadi perubahan terhadap tampilan awal

website yang mulanya tidak terdapat kata “jo_spyro” kini terdapat kata

“jo_spyro”, maka tingkat keberhasilan dari hasil scan XSS terhadap situs http://www.xxx.com adalah 100%.


(4)

77

b. Scan XSS Offline

Dari hasil ujicoba Scan XSS pada web tentang Sistem Pakar Pada Penyakit Ginjal milik salah satu teman yang berada pada komputer lokal didapatkan 3 URL, yaitu :

1. http://localhost/webstester/index.php?id= 2. http://localhost/webstester/daftar.php= 3. http://localhost/webstester/ vuln.php?status=

Masing-masing link diatas yang memiliki parameter di injeksikan dengan satu

script clientside yang diambil dari datatext :

"><H1><c e nte r><b link><b r><fo nt+c o lo r=g re e n+size =50>JO _SPYRO <b r>< / b link></ H1><NO SC RIPT>

Sehingga menjadi seperti berikut :

1. http://localhost/webstester/index.php?id="><H1><center><blink><br><f ont+color=green+size=50>JO_SPYRO<br></blink></H1><NOSCRIPT> 2. http://localhost/webstester/daftar.php="><H1><center><blink><br><font

+color=green+size=50>JO_SPYRO<br></blink></H1><NOSCRIPT> 3. http://localhost/webstester/vuln.php?status="><H1><center><blink><br>

<font+color=green+size=50>JO_SPYRO<br></blink></H1><NOSCRIP T>

Dan hasilnya 3 script yang di injeksikan tersebut dieksekusi, sehingga ditemukan kelemahan XSS. Yaitu terjadi perubahan terhadap tampilan awal

website yang mulanya tidak terdapat kata “jo_spyro” kini terdapat kata

“jo_spyro”, maka tingkat keberhasilan dari hasil scan XSS terhadap situs http://www.xxx.com adalah 100%.


(5)

6.2 Saran


(6)

DAFTAR PUSTAKA

“Seperempat Aplikasi Web Rentan Keamanan”, http://www.kapanlagi.com/h/0000265632.html (09 Desember 2008)

“Web Application Security Attack Statistics”, http://www.webappsec.org/projects/statistics (20 September 2008)

Akhmad Daniel S, “Sekilas Java”, 1998

“Java”, http://id.wikipedia.org/wiki/Java (21 Januari 2009)

“Having Fun With Cross Site Scripting (XSS) + POC Pencurian Password”, http://www.spyrozone.net (01 Januari 2009)

S’to, “Seni Internet Hacking Uncensored”, November 2007

“Pengertian dan definisi vulnerability”,

http://ahmad-prayitno.com/index.php/pengertian-dan-definisi/pengertian-vulnerability (3 Mei 2010)

“Situs Web”, http://id.wikipedia.org/wiki/Situs_web (30 Juni 2010 )

“Perancangan Web”, http://id.wikipedia.org/wiki/Perancangan_web ( 1 Juli 2010)

“Mitigating Cross-site Scripting With HTTP-only Cookies.”

http://msdn.microsoft.com/workshop/author/dhtml/httponly_cookies.asp.

Ollman & Gunter. “HTML Code Injection and Cross-site scripting, Understanding the cause and effect of CSS (XSS) Vulnerabilities. ISS Advisor.”, Agustus 2003