rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java BAB IV PENGUJIAN DAN ANALISA 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. 4.1 LINGKUNGAN PENGUJIAN Pengujian dilakukan dengan sistem hardware sebagai berikut: o Komputer dengan spesifikasi Pentium Dual Core 2,6 GHz, RAM 2GB, o Harddisk 250GB, VGA Onboard o Sistem Operasi Windows XP profesional edition Service Pack o CPU yang telah terinstall Java Virtual Machine yang berguna untuk menjalankan aplikasi ini yang dibuat menggunakan bahasa pemrograman Java. o Komputer yang terkoneksi Internet 35 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java 4.2 Uji Coba 4.2.1 Aplikasi Web Vulnerability Scanner Gambar 4. 1 Form Halaman Utama Pada Gambar 4.1 diatas terdapat Form Menu Utama, pada form tersebut terdapat 6 buah tombol sebagai berkut : • Tombol Scan XSS didalam panel WVS Scan Berbasis Online digunakan untuk melakukan proses scanning pada suatu web terhadap kelemahan XSS secara online atau dengan kata lain terhubung dengan internet. • Tombol Scan SQL Injection didalam panel WVS Scan Berbasis Online digunakan untuk melakukan proses scanning pada suatu web terhadap kelemahan SQL Injection secara Online atau terhubung dengan internet • Tombol Scan Berbasis Offline didalam Panel WVS Scan Berbasis Offline digunakan untuk melakukan proses scanning pada web lokal yang tidak terhubung dengan internet 36 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Berikut adalah proses jika tombol Scan XSS ditekan : Gambar 4. 2 Form Scanning XSS 37 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Dan web yang di scan terhadap kelemahan XSS : Gambar 4. 3 Website yang akan discan Berikut jika proses Scan XSS Online telah selesai : Gambar 4. 4 Proses Scan XSS telah selesai 38 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Setelah proses scanning XSS Online selesai akan muncul Report-nya : Gambar 4. 5 Laporan Scan XSS Dan berikut proses jika tombol Scan SQL Injection pada form Main menu seperti pada gambar 4.1 ditekan : Gambar 4. 6 Proses Scan SQL Injection 39 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Jika proses Scan SQL Injection telah selesai : Gambar 4. 7 Proses Scan SQL Injection selesai 40 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Berikut adalah Report jika proses scan SQL Injection Online telah selesai : Gambar 4. 8 Report Scan SQL Injection 41 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Dan jika tombol Scan Berbasis Offline pada form Menu Utama pada gambar 4.1 ditekan akan muncul form berikut : Gambar 4. 9 Form Scan Offline Pada Gambar 4.9 terdapat Form Scan Offline yang digunakan untuk melakukan scanning pada web yang terdapat di computer local. Pada form diatas terdapat : • Textfield File .SQL yang berfungsi untuk menunjukkan lokasi dari file .SQL yang akan di import, disamping textfield File SQL terdapat tombol Browse yang digunakan meng-browse file .SQL yang akan di import. Dan file .SQL yang di import merupakan database dari web yang akan di scan secara offline. 42 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java • Textfield Username yang digunakan untuk memasukkan username dari database. • Textfield Password yang digunakan untuk memasukkan password dari database, disamping textfield password terdapat keterangan “kosongkan jika tidak ada password” yang berarti jika password tidak ada,maka textfield password dikosongi saja. • Tombol Import SQL File yang digunakan untuk melakukan proses import file .SQL menuju database. • Tombol Browse .ZIP digunakan untuk mengekstrak file .ZIP yang berisi file-file web yang akan di scan secara offline. File .ZIP tersebut akan di ekstrak menuju directory htdocs/BITWVS yang berada di subdirectory dari webserver. Sehingga setelah diekstrak file-file web tersebut dapat dijalankan dengan bantuan webserver dengan URL http://localhost/BITWVS Pada proses scan offline ini file .SQL yang di import harus merupakan database dari file-file web yang diekstrak menuju directory htdocs/BITWVS. Sehingga web tersebut dapat di scan secara offline. Jika tombol Browse SQL pada Gambar 4.9 diatas ditekan maka akan muncul form berikut : Gambar 4. 10 Browse file .SQL 43 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Kemudian dapat dipilih file .SQL yang akan di import. Setelah memilih file .SQL yang akan di import, kemudian dilanjutkan dengan mengisi Textfield username dan textfield password yang merupakan username dan password dari database Mysql. Gambar 4. 11 Form WVS Offline yang terisi Setelah itu tekan tombol import file .SQL untuk melakukan proses import file .SQL. 44 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Dan Isi file .sql yang di import adalah sebagaiberikut : Gambar 4. 12 isi file .sql yang di import 45 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Pada gambar 4.11.1 menunjukkan bahwa isi file .SQL tersebut terdapat perintah membuat database dengan nama ”habib”. Halaman http://localhost/phpmyadmin yang dilihat melalui browser untuk melihat apakah database dengan nama habib sudah berhasil di import : Gambar 4. 13 halaman phpmyadmin setelah proses import file .SQL selesa, kemudian dilanjutkan dengan mengekstrak file .ZIP yang berisi file-file web yang akan di scan dengan cara menekan tombol Browse file .ZIP maka akan muncul form untuk mengekstrak file .ZIP 46 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Gambar 4. 14 Form Ekstrak .ZIP Pada form ekstrak file .ZIP terdapat : • Tombol Open yang berfungsi untuk membuka file .ZIP, kemudian isi file .ZIP tersebut akan ditampilkan pada tabel. • Tombol Extract yang berfungsi untuk mengekstrak file .ZIP tersebut ke dalam folder htdocs/BITWS 47 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Bila tombol Open ditekan, maka akan muncul Form Browse File .ZIP : Gambar 4. 15 Form Browse File .ZIP File .ZIP saat dibuka isinya : Gambar 4. 16 Form saat File .ZIP terbuka 48 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Kemudian tekan tombol Extract maka akan secara otomatis mengekstrak file .ZIP tersebut menuju directory htdocs/BITWVS : Gambar 4. 17 Proses ekstrak file .ZIP selesai Mengecek pada directory htdocs/BITWVS, apakah file .ZIP telah berhasil di ekstrak : Gambar 4. 18 directory htdocs/BITWVS 49 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Setelah melakukan proses ekstrak, maka kembali pada form WVS Offline seperti pada gambar 4.9, kemudian dilanjutkan dengan menekan tombol Scan XSS pada form WVS Offline,maka akan secara otomatis melakukan proses scanning XSS pada URL http://localhost/BITWVS/ yang mana merupakan file yang telah diekstrak pada folder htdocs/BITWVS. Gambar 4. 19 Proses Scan XSS Offline 50 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Setelah proses scanning XSS Offline selesai, akan muncul report hasil scanning tersebut. Gambar 4. 20 Report Scan XSS Offline 51 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Setelah proses scan XSS Offline selesai maka akan dilanjutkan dengan proses scan SQL Injection Berbasis Offline dengan menekan tombol Scan SQL Injection pada form WVS Offline seperti pada gambar 4.9 kemudian akan secara otomatis akan melakukan scan SQL Injection pada URL http://localhost/BITWVS/ Gambar 4. 21 Proses Scanning SQL Injection Offline 52 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Setelah proses scanning XSS Offline selesai, akan muncul report hasil scanning tersebut Gambar 4. 22 Report Scan SQL Injection Offline 53 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Setelah proses Scan Offline selesai,maka kembali pada form Menu Utama seperti pada Gambar 4.1. untuk melihat Report Scan terakhir dapat dilakukan dengan menekan tombol Last Report Scan maka akan muncul halaman report scan yang dilakukan terakhir kali Gambar 4. 23 Report Last Scan 54 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Setelah melihat Report Last Scan, kemudian kembali pada Form Menu Utama seperti gambit 4.1 untuk melakukan proses Update datatext terbaru script yang di injeksikan, dengan cara menekan tombol Update maka akan muncul form Update Gambar 4. 24 Form Updater Pada form Update terdapat Tombol Update yang berfungsi untuk melakukan proses Update datatext terbaru script yang di injeksikan. Juga terdapat textfield yang berisi alamat URL dimana lokasi update berada. Gambar 4. 25 Proses Update selesai File update yang telah di download akan di ekstrak menuju lokasi folder aplikasi Web Vulnerability Scanner untuk me-replace file datatext versi sebelumnya. 55 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Dan juga terdapat fitur help atau panduan untuk menggunakan aplikasi yang dibangun ini dengan memilih menu item Bantuan > Bantuan pada form menu utama Gambar 4.1. berikut adalah tampilan fitur help atau panduan dari aplikasi yang dibangun ini : Gambar 4. 26 Tampilan fitur Help 56 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java 4.3 ANALISA 4.3.1 Analisa Scan XSS Dari hasil ujicoba Scan XSS pada bab sebelumnya dapat diambil kesimpulan sebagai berikut : Dari proses scan xss terhadap URL http://localhost/Bos/ didapatkan 7 buah link : • http://localhost/Bos/index.php?id=1 • http://localhost/Bos/index.php?id=2 • http://localhost/Bos/index.php?id=3 • http://localhost/Bos/index.php?id=4 • http://localhost/Bos/index.php?id=5 • http://localhost/Bos/daftar.php • http://localhost/Bos/vuln.php?status=ginjal dari ke 7 link diatas, 6 diantaranya memiliki parameter yaitu : • http://localhost/Bos/index.php?id=1 • http://localhost/Bos/index.php?id=2 • http://localhost/Bos/index.php?id=3 • http://localhost/Bos/index.php?id=4 • http://localhost/Bos/index.php?id=5 • http://localhost/Bos/vuln.php?status=ginjal masing-masing link diatas yang memiliki parameter di injeksikan dengan salah satu script clientside yang diambil dari datatext : <H1>XSSEDbyYourself</H1> sehingga menjadi seperti berikut : • http://localhost/Bos/index.php?id=<H1>XSSEDbyYourself</H1> • http://localhost/Bos/index.php?id=<H1>XSSEDbyYourself</H1> • http://localhost/Bos/index.php?id=<H1>XSSEDbyYourself</H1> • http://localhost/Bos/index.php?id=<H1>XSSEDbyYourself</H1> • http://localhost/Bos/index.php?id=<H1>XSSEDbyYourself</H1> • http://localhost/Bos/vuln.php?status=<H1>XSSEDbyYourself</H1 > 57 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java Dan hasilnya ke enam 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 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<H1>XSSEDbySPYROKiD</H1> ORDER BY id ASC' at line 1 Dan berikut tampilan dari URL yang telah di injeksi : Gambar 4. 27 Halaman URL yang telah di injeksi 4.3.2 Analisa Scan SQL Injection Dari hasil ujicoba Scan SQL Injection pada bab sebelumnya dapat diambil kesimpulan sebagai berikut : Dari proses scan xss terhadap URL http://localhost/Bos/ didapatkan 7 buah link : • http://localhost/Bos/index.php?id=1 • http://localhost/Bos/index.php?id=2 • http://localhost/Bos/index.php?id=3 • http://localhost/Bos/index.php?id=4 • http://localhost/Bos/index.php?id=5 • http://localhost/Bos/daftar.php • http://localhost/Bos/vuln.php?status=ginjal dari ke 7 link diatas, 6 diantaranya memiliki parameter yaitu : • http://localhost/Bos/index.php?id=1 • http://localhost/Bos/index.php?id=2 • http://localhost/Bos/index.php?id=3 58 rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java • • • http://localhost/Bos/index.php?id=4 http://localhost/Bos/index.php?id=5 http://localhost/Bos/vuln.php?status=ginjal masing-masing link diatas yang memiliki parameter di injeksikan dengan salah satu script SQL yang diambil dari datatext yaitu tanda kutip “ ‘ ” sehingga menjadi sebagai berikut : • • • • • • http://localhost/Bos/index.php?id=’1 http://localhost/Bos/index.php?id=’2 http://localhost/Bos/index.php?id=’3 http://localhost/Bos/index.php?id=’4 http://localhost/Bos/index.php?id=’5 http://localhost/Bos/vuln.php?status=’ginjal Dan hasilnya ke enam link tersebut vulnerable atau memiliki celah kelemahan terhadap serangan SQL Injection. Karena didapatkan pesan error saat melakukan request ke server berupa URL yag telah di injeksikan tersebut.Berikut pesan error yang muncul : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'1 ORDER BY id ASC' at line 1 59