SKRIPSI
Oleh :
ADITYA WARDANA
0734010035
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
J AWA TIMUR
SKRIPSI
Diajukan Untuk Memenuhi Sebagian Per syar atan Dalam Memperoleh Gelar Sar jana Komputer
J urusan Teknik Infor matika
Oleh :
ADITYA WARDANA
0734010035
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
J AWA TIMUR
Aditya Wardana, 2001. Implementasi Web Vulnerability Scanner sebagai Add Ons Google Chrome (dibimbing oleh Basuki Rahmat, S.Si., MT dan Achmad J unaidi, S.Kom)
Internet pada era ini, sudah merebak di masyarakat. Namun para pengguna internet belum memperhatikan segi keamanannya, khususnya mengenai
SQL Injection dan XSS Injection. Maka perlu dikembangkan aplikasi Web Vurnerability Scanner sebagai Add Ons Google Chrome dengan pola pendeteksian yang baik. Sehingga website yang masih mempunyai kelemahan terhadap SQL Injection dan XSS Injection dapat segera diperbaiki.
Dalam Skripsi ini, aplikasi dirancang dengan bahasa pemrograman
JavaScript. Aplikasi ini mencari perbedaan antara sebelum dengan sesudah dimodifikasi alamat Url yang dikirim ke web server untuk mengetahui adanya
pola yang menunjukkan adanya kelemahan terhadap SQL Injection dan XSS
Injection. Aplikasi bisa melakukan scanning secara Online dan Offline. Hasil
scanning ditampilkan langsung oleh aplikasi dan bisa disimpan secara permanen
dalam bentuk file dokumen untuk dipergunakan guna memperbaiki website
tersebut suatu saat nanti.
Dilakukan ujicoba terhadap aplikasi ini dengan 10 website. Dari 10
website yang diacak untuk dites dan ditemukan rata-rata nilai yaitu 5 dari 10
website terindikasi mengandung SQL Injection dengan nilai 23.6% terdikasi positif SQL Injection dari keseluruhan alamar Url, sedangkan yang terindikasi
mengandung XSS Injection terdapat 7 dari 10 website dengan nilai 17.1%
terindikasi positif XSS Injection dari keseluruhan alamat Url.
Alhamdulillah, dengan mengucapkan puji dan syukur kehadirat Allah
SWT atas rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas
akhir ini dengan judul “IMPLEMENTASI WEB VULNERABILITY SCANNER
SEBAGAI ADD ONS GOOGLE CHROME” 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 kakakku tercinta serta kekasihku Febriani Mayaninggar 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. Sutiyono, MT selaku DEKAN FTI UPN “VETERAN” Jatim.
4. Bapak Basuki Rahmat, S.Si., MT selaku Kepala Jur. Teknik Informatika, FTI
UPN “VETERAN” Jatim dan selaku Dosen Pembimbing yang telah
meluangkan waktu untuk memberikan bimbingan selama proses pelaksanaan
Tugas Akhir penulis.
5. Bapak Achmad Junaidi, S.Kom, selaku Dosen Pembimbing yang telah
meluangkan waktu untuk memberikan bimbingan selama proses pelaksanaan
Tugas Akhir penulis.
6. Bapak Chrystia Aji P, S.Kom, selaku PIA TA yang telah mendukung proses
8. Dosen-dosen Teknik Informatika dan Sistem Informasi, staff dan segenap
civitas akademika UPN “VETERAN” Jatim.
9. My best Friends: Seluruh teman-teman yang sudah mendukung dan
memberikan semangat dalam mengerjakan tugas akhir ini.
Penulis menyadari sepenuhnya masih banyak terdapat kekurangan dalam
penulisan Tugas Akhir ini. Oleh sebab itu kritik serta saran yang membangun dari
pembaca sangat membantu guna perbaikan dan pengembangan di masa yang akan
datang.
Akhirnya dengan ridho Allah penulis berharap semoga Tugas Akhir ini
dapat memberikan manfaat bagi pembaca sekalian terutama mahasiswa di bidang
komputer.
Surabaya, 16 November 2011
3.5 Perancangan Antar Muka ... 37
3.5.1 Blok Arsitektur Sistem WVS Online ... 37
3.5.3 Tampilan Antar Muka Aplikasi ... 39
3.5.4 Perancangan Uji Coba ... 39
4.1.9 Halaman Get Info about Client Connection ... 62
4.1.10 Halaman Get Information about Cookie ... 64
4.1.11 Laporan Scanning Terakhir ... 66
BAB V PENGUJIAN DAN ANALISIS ... 68
5.1 Lingkungan Pengujian ... 68
5.2 Uji Coba ... 68
5.2.1 Aplikasi Web Vulnerability Scanner ... 68
8) ScanningXSS Injection pada SITE secara
penuh ... 91
9) Get Info about Domain Website ... 94
10) Get Info about Client Connection ... 95
11) Get Information about Cookie ... 96
12) Laporan Scanning Terakhir ... 97
5.3 Analisis ... 99
BAB VI PENUTUP ... 103
6.1 Kesimpulan ... 103
6.2 Saran ... 104
Halaman
Tabel 5.1 Daftar alamat website yang diperiksa ... 71
Tabel 5.2 Daftar 10 Website hasil scanning…... 100
Tabel 5.3 Daftar Website hasil scanning SQLI SITE (FULL)... 101
Halaman
Gambar 2.1 Informasi yang valid dari website ... 14
Gambar 2.2 Informasi yang tidak valid dari website ... 14
Gambar 2.3 Informasi yang valid dari website ... 18
Gambar 2.4 Informasi yang tidak valid dari website ... 18
Gambar 2.5 Contoh extensi yang sudah jadi ... 20
Gambar 2.6 Pemasangan instalasi ... 22
Gambar 2.7 Hasil dari pemasangan extensi ... 23
Gambar 3.1 Perancangan Sistem Secara Global ... 25
Gambar 3.2 Diagram Alur Scan XSS ... 28
Gambar 3.3 Diagram Alur Scan terhadap URL ... 30
Gambar 3.4 Diagram Alur Scan pada PAGE ... 31
Gambar 3.5 Diagram Alur Scan pada SITE ... 33
Gambar 3.6 Diagram Alur Scan pada SITE Secara Cepat ... 34
Gambar 3.7 Diagram Alur Informasi Domain Website ... 35
Gambar 3.8 Diagram Alur Informasi Koneksi Pengguna ... 36
Gambar 3.9 Blok Arsitektur Sistem WVS………... 37
Gambar 3.10 Tampilan Antar Muka Aplikasi ... 38
Gambar 4.1 Tampilan Menu Utama ... 41
Gambar 4.2 Halaman Scanning SQL Injection pada URL ... 42
Gambar 4.3 Halaman Scanning SQL Injection pada PAGE ... 44
Gambar 4.7 Halaman Scanning XSS Injection pada PAGE ... 54
Gambar 4.8 Halaman Scanning XSS Injection pada SITE dengan cepat 56 Gambar 4.9 Halaman Scanning XSS Injection pada SITE secara penuh 57 Gambar 4.10 Halaman Informasi Domain Website ... 60
Gambar 4.11 Halaman Informasi Client Connection ... 62
Gambar 4.12 Halaman Get Information about Cookie ... 64
Gambar 4.13 Halaman Pengunduhan result ... 66
Gambar 5.1 Tampilan Halaman Utama ... 69
Gambar 5.10 Tampilan sebelum diinjeksi SQL pada Site (cepat) ... 77
Gambar 5.11 Hasil Scanning SQL Injection pada Site (cepat) ... 78
Gambar 5.12 Tampilan sesudah diinjeksi SQL pada Site (cepat) ... 78
Gambar 5.13 Log scanning injeksi SQL pada Site (cepat) ... 79
Gambar 5.14 Tampilan sebelum diinjeksi SQL pada Site (penuh) ... 80
Gambar 5.18 Tampilan sebelum diinjeksi XSS pada Tab Url ... 83
Gambar 5.19 Hasil Scanning XSS Injection pada Tab Url ... 83
Gambar 5.20 Tampilan sesudah diinjeksi XSS pada Tab Url ... 84
Gambar 5.21 Log scanning injeksi XSS pada Tab Url ... 84
Gambar 5.22 Tampilan sebelum diinjeksi XSS pada Page ... 85
Gambar 5.23 Hasil Scanning XSS Injection pada Page ... 86
Gambar 5.24 Tampilan sesudah diinjeksi XSS pada Page ... 87
Gambar 5.25 Log scanning injeksi XSS pada Page ... 87
Gambar 5.26 Tampilan sebelum diinjeksi XSS pada Site (cepat) ... 88
Gambar 5.27 Hasil Scanning XSS Injection pada Site (cepat) ... 89
Gambar 5.28 Pengisian script pada kotak search ... 89
Gambar 5.29 Tampilan sesudah diinjeksi XSS pada Site (cepat) ... 90
Gambar 5.30 Log scanning injeksi XSS pada Site (cepat) ... 90
Gambar 5.31 Tampilan sebelum diinjeksi XSS pada Site (penuh) ... 91
Gambar 5.32 Hasil Scanning XSS Injection pada Site (penuh) ... 92
Gambar 5.33 Tampilan sesudah diinjeksi XSS pada Site (penuh) ... 92
Gambar 5.34 Log scanning injeksi XSS pada Site (penuh) ... 93
Gambar 5.35 Informasi Domain Website ... 94
Gambar 5.36 Log Informasi Domain Website ... 94
Gambar 5.37 Informasi Client Connection ... 95
Gambar 5.38 Log Informasi Client Connection ... 95
Gambar 5.42 Hasil scanning Cookie dalam bentuk file dokumen... 98
Gambar 5.43 Hasil scanning SQLI dalam bentuk file dokumen... 98
Gambar 5.44 Penduplikasian alamat Url Hasil Scan SQLI... 99
Gambar 5.45 Bukti hasil dari hasil scanning pada bentuk file simpan... 99
1.1Latar belakang
Internet pada era ini, sudah merebak di masyarakat. Banyak dari
masyarakat sudah bisa menggunakan fasilitas-fasilitas yang ada di internet,
seperti browsing dan download. Internet (kependekan dari
interconnected-networking) ialah sistem global dari seluruh jaringan komputer yang saling
terhubung menggunakan standar Internet Protocol Suite (TCP/IP) untuk
melayani para pengguna di seluruh dunia. Banyak dari para pengguna internet
belum memperhatikan dari segi keamanannya. Maka menjadi penting, untuk
mengetahui bagaimana menjamin keamanan web. (Wibowo Tunardy: 2009).
Pengguna internet minimal harus mengetahui 3 konsep penting, seperti
memastikan siapa relasi yang diajak untuk berkomunikasi di internet,
menjaga kerahasiaan data-data, dan memastikan tidak ada komponen maupun
data yang diakses mengalami kerusakan. Selain itu juga keamanan web
berada di pihak masing-masing pengguna internet, karena apabila pengguna
internet terlalu bebas dalam memberikan data-data penting, maka buka tidak
mungkin, hacking akan mengambil informasi tersebut tanpa ijin.
Ada kemungkinan terjadinya hacking dikarenakan kesalahan dalam
scripting pembuatan web yang dimanfaatkan oleh para hacker, sehingga
rata-rata banyak website yang berhasil diserang melalui lubang ini. Kelemahan
website yang ditemukan pada proses vulnerabilities scanner adalah XSS
Injection dan SQL Injection yang akan dibahas dalam skripsi ini. Pengujian
komputer dengan memasang PHP, dan mySQL, atau memasang aplikasi
seperti ataupun apache yang merupakan paket all in one.
Untuk dapat memakai internet memerlukan sebuah browser. Salah satu
browser yang terkenal dan yang akan dipergunakan dalam skripsi ini adalah
Google Chrome, merupakan browser buatan Google yang saat ini banyak
digunakan oleh masyarakat dunia. Google melakukan beberapa perubahan
pada setiap versi browser yang baru dirilis untuk memperbaiki kinerja dan
kualitas browser Google Chrome. Bagi pengguna internet belum pernah
mencoba aplikasi browser bernama Google Chrome ini, pada browser ini
terdapat fitur-fitur yang sangat menarik dan bagus-bagus. Kemampuan
Google Chrome tidaklah kalah dengan browser lainnya, seperti Firefox,
Opera, dan Internet Explorer. Bahkan mungkin lebih baik.
Aplikasi Google Chrome versi terbaru saat ini, pengguna internet bisa
menjumpai fitur Speed Dials, Private Browser, tab yang sangat dinamis, dan
tentunya tampilan yang sederhana namun memukau. Google Chrome juga
didukung oleh tema-tema yang menarik, seperti Firefox. Aplikasi Google
Chrome mempunyai fitur Safe Browsing, dimana pengguna akan
mendapatkan pemberitahuan jika ternyata pengguna mengunjungi sebuah
situs yang berbahaya, seperti situs phising atau situs yang mengandung
malware.
Pada rilis terbaru saat ini, Google Chrome tidak hanya dapat
digunakan dalam sistem operasi Windows saja, tetapi Google Chrome bisa
Terdapat sebuah fitur tambahan yang bisa dintegrasikan dengan
Google Chrome yang disebut Add Ons. Banyak Add Ons yang memiliki
beberapa fitur yang membantu pengguna Google Chrome untuk
menggunakan internet dengan lebih mudah. Dalam skripsi ini akan dirancang
sebuah AddOns yang memiliki fitur utama yaitu mendeteksi link yang dapat
digunakan untuk XSS Injection dan SQL Injection.
Dari analisis di atas untuk mengatasi serangan pada sebuah web
sehingga perlu dibuatnya sebuah aplikasi web yang menerapkan proses
Vulnerabilities Scanner dengan serangan SQL (Structured Query Language)
Injection dan XSS (Cross Site Scripting) Injection sehingga pengguna dapat
mengetahui kelemahan yang terdapat pada sebuah web dalam bentuk sebuah
Add Ons untuk browser dengan nama Google Crome yang cukup terkenal.
1.2Rumusan Masalah
Dari latar belakang yang telah dipaparkan oleh penulis sebelumnya
maka penulis mencoba untuk membuat sebuah Add Ons pada browserGoogle
Crome dengan menerapkan proses Web Vulnabilities Scanner. Adapun
beberapa permasalahan yang ada sebagai berikut:
a. Bagaimana membangun sebuah Add Ons untuk browser yang bernama
Google Crome yang menerapkan proses Web Vulnerabilities Scanner dan
dengan serangan SQL (Structured Query Language) Injection dan XSS
b. Bagaimana membuat sebuah pola pendeteksian baik terhadap SQL
(Structured Query Language) Injection dan XSS (Cross Site Scripting)
pada alamat web yang diakses
c. Bagaimana menampilkan dan menyimpan hasil proses Web
Vulnerabilities Scanner untuk dapat dibaca oleh pengguna aplikasi
tersebut.
1.3Batasan Masalah
Dalam penyusunan tugas akhir ini, untuk mengatasi permasalahan
yang ada maka penulis membatasi permasalahan sebagai berikut.
a. Aplikasi ini dapat mendeteksi alamat Url pada website yang
memungkinkan bisa dipergunakan sebagai media peretasan dengan XSS
Injection dan SQL Injection.
b. Aplikasi ini berkemampuan mendeteksi alamat Url pada website tersebut
yang dituliskan pada halaman web dalam arti alamat tersebut tidak
disembunyikan (enkripsi) dan dituliskan dalam tagHTML yaitu “HREF”
dan sebuah “FORM” dalam tag html merupakan suatu kotak isian atau
opsi dalam halaman web.
c. Kecepatan proses Add Ons ini bergantung kecepatan internet yang
terkoneksi pada komputer tersebut.
1.4Tujuan Penelitian
Tujuan dari skripsi adalah bagaimana mengimplementasikan sebuah
untuk browser Google Chrome. Serta sebagai syarat pelengkap untuk
memenuhi Tugas Akhir di Universitas Pembangunan Nasional “veteran”
Jatim.
1.5Manfaat Penelitian
Adapun manfaat dibuatnya aplikasi Add Ons Web Vurnerability
Scanner untuk browser Google Chrome ini adalah :
a. Membantu pengguna internet untuk berhati hati saat memanfaatkan suatu
website dalam hal keamanan informasi pada website tersebut.
b. Membantu administrator mengetahui kelemahan apa saja yang ada pada
website tersebut terhadap serangan SQL (Structured Query Language)
Injection dan XSS (Cross Site Scripting).
1.6Metode Penelitian
Beberapa metode yang dilaksanakan dalam penelitian ini adalah
sebagai berikut :
a. Studi Literatur
Dilakukan dengan cara mencari segala macam informasi secara riset
keperpustakaan dan mempelajari buku-buku yang berhubungan dengan
masalah yang dihadapi.
b. Pengumpulan dan Analisa Data
Pengumpulan data dilakukan dengan cara : observasi, identifikasi dan
dilakukan analisa data yaitu dalam proses pembuatan Add Ons Web
VulnerabilityScanner pada GoogleChrome.
c. Perancangan Program
Melakukan analisa awal tentang Add Ons yang akan dibuat yaitu suatu
pemecahan masalah yang dilakukan melalui system online dengan cara
pembuatan Add OnsWeb VulnerabilityScanner pada GoogleChrome.
d. 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.
e. Kesimpulan
Dibuat kesimpulan dari pengujian sistem tugas akhir dengan menguji
apakah hasilnya seperti yang diharapkan pada tujuan tugas akhir
2.1 SEJ ARAH WEBSITE DAN BROWSER
Web adalah hasil dari sebuah kreasi suatu ruang informasi di mana
sumber daya yang berguna diidentifikasi oleh pengenal global. Web menjadi
komoditi yang diperebutkan oleh banyak pihak, dimana salah satu aplikasi
Internet yang populer adalah web. (Jefersen Lombogia : 2011).
Bahkan Microsoft dan Netscape pernah berusaha membuat satu
standarisasi web secara de facto. Untunglah, Berners-Lee bersama
rekan-rekannya mendirikan World Wide Web Consortium (www.w3c.org) pada
bulan Oktober 1994. W3C berhasil mencegah kalangan komersial mengambil
alih web. Kini beragam standarisasi web, seperti versi Hyper-Text Markup
Language (HTML) dan Platform for Internet Content Selection (PICS),
Cascading Style Sheet (CSS) dan eXtended Markup Language (XML)
dirancang-bangun oleh W3C secara independen.
Kisahnya berawal ketika pada bulan Maret 1989, Berners-Lee, seorang
lulusan Universitas Oxford berkebangsaan Inggris, mengajukan proposal
tentang suatu sistem berbasis hypertext yang memungkinkan para peneliti
fisika bisa berbagi informasi secara efisien dan efektif. Proposal tersebut
diberi judul "HyperText and CERN". CERN merupakan nama tempat
Berners-Lee bekerja saat itu, yaitu kependekan dari Conseil Europeen pour la
dijalankan di sebuah perangkat komputer NeXT. Saat itu web sudah
mengandung line-mode user interface yang disebut sebagai www. Esensi
dasar sebuah web telah lahir.
Kemudian pada bulan Mei 1991, tammpilan www tersebut mulai
dipasang di mesin CERN dan dapat diakses melalui jaringan. Kemudian
untuk pertama kalinya, tepatnya pada bulan Agustus 1991, informasi
mengenai web tersebut disebarluaskan melalui newsgroup Usenet di
alt.hypertext dan melalui newsletter CERN pada Desember 1991. Pada saat
itulah web dan www mulai dikenal secara luas, meskipun masih mengunakan
browserline-mode interface. Untuk berpindah dari satu halaman ke halaman
lainnya, pengguna harus mengetikkan perintah-perintahnya.
Salah seorang pemerhati perkembangan web dan www tersebut adalah
Marc Andreesen, seorang mahasiswa University of Illinois, yang gemar
mengutak-atik perangkat keras dan lunak di laboratorium kampusnya,
National Center for Supercomputing Applications (NCSA). Kemudian
Andreesen bersama rekan-rekannya mengembangkan browser berdasarkan
data-data dari CERN. Pada bulan Februari 1993 lahirlah browser graphical
user interface (GUI) yang pertama. Informasi mengenai browser yang diberi
nama Mosaic tersebut segera disebarluaskan melalui newsgroup. Mosaic
merevolusi konsep tentang browser. Mosaic 1.0 secara resmi baru dirilis pada
bulan November 1993, dengan menggabungkan berbagai aplikasi Internet
seperti www, news, WAIS, e-mail dan tentu saja, kemampuan menampilkan
Bahkan Url untuk pindah halaman telah berbentuk tulisan berwarna
biru yang dapat di klik menggunakan mouse. Mosaic pun terjun dalam kiprah
komersial. Pada April 1994, Jim Clark, pendiri Silicon Graphics, bersama
dengan Andreseen mendirikan Mosaic Communication Corporation, yang
kemudian berganti nama menjadi Netscape Corporation. Untuk selanjutnya,
Mosaic dikembangkan oleh tim NCSA minus Andreseen, sedangkan
Netscape Corporation mengembangkan Netscape. Saat itu, lisensi source
code Mosaic, yang diberi kode SpyGlass, bisa ikut dimiliki oleh pihak lain.
Pada Desember 1994, lahirlah browser komersial yang pertama,
Netscape 1.0 dari Netscape Corporation. Lantaran menyadari bahwa Netscape
tersebut lahir dari dunia pendidikan, Netscape Corporation memutuskan
mendistribusikan browser komersial mereka tersebut secara gratis khusus
bagi kalangan pendidikan. Strategi ini menjadi kunci penting dalam perolehan
pangsa pasar Netscape hingga 80% pada era tersebut.
Microsoft melakukan tindakan dengan membuat sebuah browser
dengan nama Internet Explorer (IE) 1.0 yang baru dirilis Agustus 1995,
dalam bentuk Windows 95 Plus pack release yang komersial, alias tidak
gratis. IE 1.0 tersebut berbasiskan pada source code Mosaic dengan lisensi
SpyGlass. Bill Gates seperti tersambar petir ketika menyadari bahwa
perkembangan Internet sedemikian pesat dan sedemikian penting, sama
pentingnya dengan personal computer (PC) dan sistem operasi. Orang-orang
tengah keranjingan Internet. Saat itu browser adalah Netscape.
Dalam waktu singkat Bill Gates melakukan mobilisasi Microsoft dan
pada bulan Agustus 1996 untuk berhadap-hadapan dengan Netscape. Bill
Gates tidak mau tanggung-tanggung, mulai dari IE 3.0 tersebut, semua
browser IE digratiskan sama sekali dan diikat dalam sistem operasi Windows.
Hal tersebutlah yang akhirnya memicu perang browser, pengadilan
anti-monopoli Microsoft dan runtuhnya dinasti Netscape.
Tetapi seiring kemajuan website yang pesat dengan banyaknya website
baru bermunculan saat ini ternyada ada beberapa pihak yang menyalah
gunakan website untuk kepentingan pribadi atau kelompok. Ternyata website
mempunyai kelemahan jika dalam pembuatan website tersebut tidak
memperhatikan dalam pengamanan data dalam sistem website yang dibuat.
Para peretas memanfaafkan kelemahan tersebut untuk melakukan petetasan
yang bisa mengambil informasi pernting tanpa ijin atau bahkan sampai
merusak website tersebut. Banyak cara yang digunakan peretas untuk meretas
website tetapi dalam tugas akhir ini hanya membahas tentang media peretasan
dengan SQL injection dan XSS injection yang memanfaatkan alamat Url.
2.2 INJ EKSI SQL
Injeksi SQL adalah sebuah teknik yang menyalahgunakan sebuah celah
keamanan yang terjadi dalam lapisan basis data sebuah aplikasi. Celah ini
terjadi ketika masukan pengguna tidak disaring secara benar dari
karakter-karakter pelolos bentukan string yang diimbuhkan dalam pernyataan SQL
(query SQL) atau masukan pengguna tidak bertipe kuat dan karenanya
dijalankan tidak sesuai harapan. Ini sebenarnya adalah sebuah contoh dari
kali sebuah bahasa pemrograman atau skript diimbuhkan di dalam bahasa
yang lain.
Bentuk SQL Injection ini terjadi ketika pengguna masukan karakter
yang tidak disaring dari karakter-karakter pelolos dan kemudian diteruskan ke
dalam sebuah pernyataan SQL. Ini menimbulkan potensi untuk memanipulasi
pernyataan-pernyataan yang dilakukan pada basis data oleh pengguna
aplikasi.
(Queto : 2011)
Baris kode berikut menggambarkan celah keamanan ini:
pernyataan := "SELECT * FROM pengguna WHERE nama = '" +
namaPengguna + "';"
Jika variabel "namaPengguna" dirangkai sedemikian rupa oleh pengguna yang
bermaksud buruk. Sebagai contoh, mengeset variabel "namaPengguna"
sebagai
a' or 't'='t
Menjadikan pernyataan SQL ini oleh bahasa yang memuatnya:
SELECT * FROM pengguna WHERE nama = 'a' or 't'='t';
Jika kode ini akan digunakan dalam sebuah prosedur untuk melakukan
otentikasi, maka contoh ini dapat dipakai untuk memaksakan pemilihan
sebuah nama pengguna yang sah karena evaluasi 't'='t' akan selalu
bernilai benar.
Secara teori, perintah SQL sah apapun bisa diinjeksi melalui metode
ini, termasuk menjalankan banyak pernyataan. Nilai "namaPengguna" berikut
ini pada pernyataan di atas akan menyebabkan dihapusnya tabel "pengguna"
a';DROP TABLE pengguna; SELECT * FROM data WHERE nama LIKE '%
Masukan ini menjadikan pernyataan akhir SQL sebagai berikut:
SELECT * FROM pengguna WHERE nama = 'a';DROP TABLE pengguna; SELECT * FROM data WHERE nama LIKE '%';
Bentuk SQL Injection ini terjadi ketika sebuah unsur masukan
pengguna tidak bertipe kuat atau tidak diperiksa batasan-batasan tipenya. Ini
dapat terjadi ketika sebuah unsur numerik akan digunakan dalam sebuah
pernyataan SQL, tetapi pemrogram tidak melakukan pemeriksaan untuk
memastikan bahwa masukan pengguna adalah numerik. Sebagai contoh:
pernyataan := "SELECT * FROM data WHERE id = " + variabel_a + ";"
Terlihat jelas dari pernyataan ini pengarang memaksudkan
variabel_a menjadi sebuah nomor yang berhubungan dengan unsur "id".
Namun begitu, jika pada kenyataannya itu adalah sebuah string, maka
pengguna akhir dapat memanipulasi pernyataan tersebut sesukanya, dan
karena itu mengabaikan kebutuhan akan karakter-karakter pelolos. Sebagai
contoh, mengeset variabel_a sebagai
1;DROP TABLE pengguna
akan menghapus tabel "pengguna" dari basis data karena hasil akhir SQL-nya
akan menjadi sebagai berikut:
SELECT * FROM data WHERE id = 1;DROP TABLE pengguna;
Terkadang celah-celah keamanan dapat berada dalam perangkat lunak
server basis data itu sendiri, seperti yang terjadi pada fungsi-fungsi
real_escape_chars() di server MySQL.
SQL Injection dapat dengan mudah diatasi dalam kebanyakan bahasa
Dalam DBI di Perl, metode DBI::quote meloloskan karakter-karakter khusus
(anggaplah variabel $sql menyimpan referensi ke sebuah obyek DBI).
Namun begitu, secara umum ini bukan jalan yang terbaik dalam
menghadapi masalah tersebut. DBI mengijinkan penggunaan placeholder,
yang memperbolehkan pengguna untuk mengikat data ke sebuah pernyataan
secara terpisah dari pendefinisian pernyataan SQL tersebut. Untuk sistem
basis data yang tidak secara asli mendukung placeholder, DBI menirukannya
dengan menggunakan fungsi DBI::quote secara otomatis pada nilai-nilai.
Banyak sistem basis data yang mendukung pengikatan nilai secara terpisah
melalui API mereka; DBI akan menggunakan dukungan placeholder asli
tersebut dalam hal ini.
Dalam PHP, terdapat beberapa fungsi bawaan yang berbeda untuk
meloloskan nilai-nilai yang cocok untuk diimbuhkan dalam
pernyataan-pernyataan SQL harafiah. Untuk MySQL, yang serupa dengan ini adalah
fungsi bawaan yaitu mysql_real_escape_string().
Berikut ini contoh sederhana dari SQL Injection pada sebuah website
melalui alamat Url. Apabila sebuah halaman pada website diakses secara
benar sesuai aturan website tersebut maka hasil informasi yang ditampakkan
Gambar 2.1Informasi yang valid dari website
Tetapi apabila dilakukan perubahan terhadap alamat Url maka akan
muncul sebuah pesan error dari website (Gambar 2.2) yang dapat
dipergunakan oleh peretas untuk melakukan peretasan terhadap website
tersebut.
Ga mbar 2.2Informasi yang tidak valid dari website
Peretas tinggal mengubah simbol (‘) pada alamat Url dengan beberapa
query SQL untuk mendapatkan informasi penting yang ditampilkan website
2.3 Injeksi XSS
XSS merupakan kependekan yang digunakan untuk istilah cross site
scripting. Cross-site scripting (XSS) adalah jenis kerentanan keamanan
komputer biasanya ditemukan dalam aplikasi web yang memungkinkan
penyerang untuk menginjeksi script sisi klien ke dalam halaman web dilihat
oleh pengguna lain. Sebuah kerentanan cross-site scripting dapat digunakan
oleh penyerang untuk memotong kontrol akses tersebut sebagai kebijakan
asal yang sama. Cross-site scripting dilakukan pada website adalah sekitar
80% dari semua kerentanan keamanan didokumentasikan oleh Symantec pada
2007. Pengaruh mereka bisa berkisar dari gangguan kecil dengan resiko
keamanan yang signifikan, tergantung pada kepekaan data ditangani oleh
situs yang rentan dan sifat dari setiap mitigasi keamanan yang dilaksanakan
oleh pemilik situs. (Jefry : 2011).
Lubang Cross-site scripting adalah celah keamanan aplikasi web yang
memungkinkan penyerang untuk mem-bypass mekanisme klien-sisi
keamanan biasanya dikenakan pada konten web oleh browser modern.
Dengan mencari cara menyuntikkan script berbahaya ke dalam halaman web,
seorang penyerang bisa mendapatkan hak akses diangkat ke sensitif-konten
halaman tertentu, session, cookies, dan berbagai informasi lainnya yang
dikelola oleh browser atas nama pengguna.
Sebelum tahun 2005, sebagian besar para ahli dan pengembang sedikit
perhatian terhadap XSS Injection. Sementara satu juta server web baru muncul
secara global setiap bulan berubah firewall perimeter menjadi rendering
percaya JavaScript, berkembangnya XSS, untuk menjadi bahasa
pemrograman mainan. Pada bulan Oktober 2005, menurut Worm Samy, besar
pertama XSS cacing, berhasil menutup MySpace situs jejaring sosial populer
Muatan yang relatif jinak, Samy Worm dirancang untuk menyebar dari
halaman profil pengguna MySpace satu ke yang lain, akhirnya menginfeksi
lebih dari satu juta pengguna hanya dalam 24 jam. Tiba-tiba dunia keamanan
lebar terjaga dan penelitian malware JavaScript meledak. XSS sangat
berbahaya karena dapat menyebabkan mengorbankan sistem atau jaringan
yang merupakan pusat data / informasi.
XSS dibedakan atas 2 macam. Pertama adalah cross-site scripting
non-persistent (atau tercermin) sejauh ini jenis yang paling umum diketahui.
Lubang ini muncul ketika data yang diberikan oleh klien web, yang paling
umum dalam parameter permintaan HTTP atau dalam pengiriman form
HTML, adalah digunakan langsung oleh script sisi server untuk
menghasilkan halaman hasil untuk user tersebut, tanpa pembenaran sanitasi
permintaan tersebut. (Budi Kurniawan : 2008).
Karena dokumen HTML memiliki struktur, datar yang menggabungkan
laporan kontrol, format, dan isi yang sebenarnya, setiap data yang disediakan
pengguna non-divalidasi termasuk dalam halaman hasil tanpa pengkodean
HTML yang tepat, dapat menyebabkan markup injeksi. Sebuah contoh klasik
dari sebuah vektor potensial adalah mesin pencari situs, jika seseorang
mencari sebuah kata, kata pencarian biasanya akan ditampilkan kembali kata
jawaban ini tidak benar atau menolak karakter HTML kontrol, kelemahan
cross-site scripting akan terjadi.
Pada blush pertama, ini tampaknya tidak menjadi masalah serius
dengan mengirimkan masukan berbahaya ke situs web, pengguna hanya akan
bisa kompromi konteks keamanan mereka sendiri yaitu: cookie browser
mereka sendiri, objek cache, dan sebagainya. Adalah penting untuk
menyadari, bagaimanapun, bahwa seorang penyerang pihak ketiga dengan
mudah dapat menempatkan frame tersembunyi atau link tipuan di situs yang
tidak terkait dan menyebabkan browser korban untuk menavigasi ke Url di
situs rentan secara otomatis, penyerang dapat mengganggu dalam konteks
keamanan yang sah milik korban.
Untuk mencegah serangan terhadap XSS perlu adanya validasi
masukan yang sangat penting. (Sepertinya tema di sini) Pengembang perlu
untuk memvalidasi input seperti itu datang masuk Tapi tambahan output perlu
diverifikasi. Output harus dikodekan dengan benar dalam bentuk tag html.
Jika output dikodekan dengan benar, maka hasil pelaksanaan dari tag
<script> </ script> tidak dikodekan dan tidak menimbulkan kerentanan
sebuah website. (Utuh : 2009).
Berikut ini contoh sederhana dari XSS Injection pada sebuah website
melalui alamat Url. Apabila sebuah halaman pada website diakses secara
benar sesuai aturan website tersebut maka hasil informasi yang ditampakkan
Gambar 2.3Informasi yang benar dari website
Tetapi apabila dilakukan perubahan terhadap alamat Url maka akan
muncul sebuah tulisan yang tidak semestinya muncul sesuai data pada sistem
website tewesebut seperti Gambar 2.4. Hal itu yang akan dipergunakan oleh
peretas untuk melakukan peretasan terhadap website tersebut.
Gambar 2.4Informasi yang tidak benar dari website
Peretas tinggal menambahkan script yang berisikan kode javascript
pada alamat Url untuk mendapatkan informasi penting yang ditampilkan
2.4 Google Chrome
Google Chrome adalah sebuah browser yang dikembangkan oleh
Google yang menggunakan layout engine WebKit. Ini pertama kali dirilis
sebagai versi beta untuk Microsoft Windows pada tanggal 2 September 2008,
dan rilis yang stabil pada publik pada tanggal 11 Desember 2008. Nama ini
berasal dari kerangka antarmuka pengguna grafis, atau "krom". Pada April
2011, Chrome adalah browser yang paling banyak digunakan ketiga dengan
pangsa pasar 12% di seluruh dunia web, menurut Net Applications.
Pada bulan September 2008, Google merilis sebagian besar source
code Chrome, termasuk unit mesin V8 JavaScript, sebagai proyek sumber
terbuka bertajuk Kromium. Langkah ini memungkinkan pengembang pihak
ketiga untuk mempelajari kode sumber yang mendasari dan membantu
mengkonversi browser untuk Mac OS X dan sistem operasi Linux. Google
juga menyatakan harapan bahwa browser lain akan mengadopsi V8 untuk
meningkatkan kinerja aplikasi web. Google meluncurkan Browser Kromium
di bawah lisensi BSD. Bagian lain dari source code tunduk pada berbagai
lisensi open source. Kromium mengimplementasikan fitur yang sama
ditetapkan sebagai Chrome, tetapi tidak memiliki built-in update otomatis dan
branding Google, dan paling jelas logo Google Chrome adalah sebuah
lingkaran yang berwarna biru ditengah yang dikelilingi 3 warna.
Aplikasi Google Chrome ini memiliki beberapa keunggulan sehingga
banyak para pengguna internet menggunakan aplikasi isi untuk menjelajahi
website di internet. Keunggulan tersebut diantaranya adalah dari segi
dimulai dari desktop, memuat laman web dalam sekejap, dan menjalankan
aplikasi web yang rumit dengan cepat. Dari segi tampilan dimana Jendela
peramban Chrome yang efektif, bersih dan sederhana. Chrome juga disertai
fitur yang dirancang untuk efisiensi dan kemudahan penggunaan. Misalnya,
pengguna dapat menelusuri dan menavigasi dari kotak yang sama, dan
mengatur tab sesuai keinginan dengan cepat dan mudah. Dari segi keamanan
dimana Chrome dirancang untuk menjaga pengguna lebih aman dan terjamin
di web dengan perlindungan dari program jahat dan phishing internal,
pemutakhiran otomatis untuk memastikan peramban tetap terkini dengan
pemutakhiran keamanan terbaru, dan lain-lain.
2.5 Membuat Add Ons Google Chr ome
Tutorial ini berisikan tuntunan untuk membuat Add Ons Google
Chrome yang sederhana yang didapat dari alamat
http://code.google.com/chrome/ extensions/getstarted.html . Setelah Add Ons
dipasang maka akan muncul ikon di Google Chrome, saat ketika diklik,
menampilkan halaman yang dihasilkan secara otomatis. Ikon dan halaman
akan terlihat pada Gambar 2.5.
Dapat mengembangkan ekstensi menggunakan rilis Google Chrome,
pada Windows, Mac OS, atau Linux. Membuat dan menjalankan ekstensi
pada browser Google Chrome. Untuk membuat sebuah ekstensi yang
menambahkan tindakan toolbar browser untuk Google Chrome sebagai
berikut :
a. Buat folder di suatu tempat di komputer ke berisi kode ekstensi.
b. Di dalam folder ekstensi, membuat file teks yang disebut
manifest.json, dan menempatkan ini di dalamnya:
"version": "1.0","description": "The first extension that I made.", "browser_action": {"default_icon": "icon.png"},"permissions": ["http://api.flickr.com/" ]}
Salin ikon ini untuk folder yang sama:
http://code.google.com/chrome/extensions/examples/tutorials/getstarte d/icon.png
c. Menjalankan ekstensi.
1) Bring up the extensions management page by clicking the
wrench icon and choosing Tools > Extensions.
2) Jika mode Pengembang memiliki + oleh itu, klik + untuk
menambah informasi pengembang untuk halaman tersebut. Para
+ perubahan ke -, dan tombol dan informasi muncul.
3) Klik tombol Load membongkar ekstensi. Sebuah dialog file
4) Dalam dialog file, arahkan ke folder ekstensi dan klik OK.
Jika Add Ons yang dimasukkan valid, ikon muncul di sebelah address
bar, dan informasi tentang perpanjangan muncul di halaman ekstensi, seperti
yang ditunjukkan screenshot pada Gambar 2.6.
Gambar 2.6 Pemasangan instalasi
Setelah itu lakukan pengubahan pada file manifest.json untuk
menambahkan baris berikut:
"browser_action": {"default_icon": "icon.png","popup": "popup.html"},
Di dalam folder ekstensi, membuat file teks yang disebut popup.html,
dan tambahkan kode HTML yang akan dimunculkan sebagai popup. Kembali
ke halaman manajemen ekstensi, dan klik tombol Reload untuk memuat versi
baru dari ekstensi. Klik ikon perpanjangan itu. Sebuah popup akan muncul
yang menampilkan isi popup.html. Seharusnya terlihat seperti pada Gambar
Gambar 2.7 Hasil dari pemasangan extensi
Jika tidak muncul popup yang berisikan hasil tag HTML yang ditulis
3.1 DESAIN SISTEM
Prosedur perancangan sistem secara umum untuk pembangunan
Aplikasi Web Vulnearbility Scanner terhadap kelemahan XSS Injection dan
SQL Injection dalam bentuk Add Ons browser Google Chrome 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. Dalam aplikasi ini data yang dibutuhkan
hanyalah alamat Url yang didapat secara otomatis dari tab jendela
yang sedang dibuka.
2) Data output
Dari data input di atas, sistem akan menggunakannya hingga
didapatkan kesimpulan sebagai output sistem. Dalam aplikasi ini
hasil proses pencarian dapat disimpan ke bentuk fileMS Word.
b. Proses
Perancangan proses yang dimaksudkan adalah bagaimana sistem
akan bekerja, proses-proses yang digunakan, mulai dari masuknya data
c. Antar muka
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 ada pada Gambar 3.1.
Gambar 3.1 Perancangan Sistem secara global
Dari Gambar 3.1 dapat diketahui :
1) Aplikasi yang dibangun melakukan permintaan data ke server
berupa alamat Url yang diminta oleh aplikasi.
2) Server akan memberikan respon berupa teks Tag HTML.
3) Aplikasi meproses hasil respon tersebut, kemudian mendapatkan
struktur Url dari hasil pencarian dan menginjeksi struktur Url
tersebut dengan script sisi klien.
4) Aplikasi mengirim request ke server berupa struktur hasil pencarian
yang telah di injeksi.
5) Server mengirim respon hasil injeksi ke aplikasi.
Server
3.2 PERANCANGAN SISTEM
Perancangan sistem ini terdiri atas 2 basis yang akan diuraikan pada
sub bab di bawah ini :
a. Web Vulnerability Scanner Ber basis 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. Masukan data untuk
aplikasi web vulnerability scanner berbasis online ini adalah berupa Url
dari web yang akan di scan.
b. Web Vulnerability Scanner Ber basis 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.
3.3 PERANCANGAN DATA INPUT
Dalam perancangan data masukan, akan dijelaskan mengenai data-data
yang terdapat dalam sistem sesuai dengan fungsinya sebagai data input
sistem.
a. DATA INPUT WEB VULNERABILITY BERBASIS ONLINE /
OFFLINE
Untuk menjalankan Web Vulnerability Scanner berbasis online ini
1) Url
Pada aplikasi ini alamat URL akan didapatkan secara
otomatis pada tab jendela yang sedang dibuka saat itu. Url tersebut
kemudian digunakan untuk melakukan request kepada server
sehingga server tersebut memberikan respon berupa tag HTML
kepada klien. Dan respon berupa Tag HTML tersebut itulah yang
akan di lakukan prosespencarian.
3.4PERANCANGAN PROSES
Perancangan proses pada bagian ini akan menjelaskan tentang
bagaimana sebuah permintaan dari user sesuai dengan menu yang ada pada
aplikasi tersbut akan diproses menjadi sebuah output yang diharapkan.
3.4.1 Proses Scanning
Pada perancangan sistem aplikasi ini, disediakan beberapa
menu utama dan tambahan. Pada menu utama terdapat dua menu yaitu
pencarian kelemahan terhadap SQL Injection dan percaharian
kelemahan terhadap XSS Injection. Pada menu pencarian kelemahan
terhadap SQL Injection terdapat empat sub menu diantaranya
pencarian pada alamat Url yang sedang dibuka, pencarian pada
halaman yang sedang dibuka, pencarian pada seluruh halaman dalam
satu website dengan cepat, dan pencarian pada seluruh halaman dalam
Pada perancangan sistem aplikasi ini, diadopsikan dari sebuah
langkah sederhana dalam mencari kerentanan terhadap SQL Injection
maupun XSS Injection yang sudah dibuat sebelumnya. Berikut diagram
alur dari prosenya pada Gambar 3.2.
Gambar 3.2 Diagram Alur Scan XSS
Penjelasan dari Gambar 3.2 adalah
a. Aplikasi WVS melakukan request ke server berupa Url yang telah
di masukkan oleh pengguna.
b. Server memberikan respon berupa tag html yang di minta aplikasi
c. Kemudian aplikasi WVSmencari kelemahan setiap tag HTML yang
telah diberikan oleh server.
d. Aplikasi WVS menangkap semua tag <a herf> dari tag HTML
sudah didapatkan dari server.
e. 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.
f. Proses selanjutnya aplikasi menulis ulang parameter tersebut
dengan script injeksi yang diambil dari datatext.
g. Lalu aplikasi mengirim ulang ke server berupa Url yang
parameternya telah di injeksi.
h. Server memberikan respon berupa tag HTML, kemudian tag HTML
tersebut di scanning.
i. Apakah pada respon tag HTML tersebut terdapat script yang
diinjeksikan, jika ya maka web tersebut mempunyai kelemahan dan
jika tidak maka web tersebut tidak mempunyai kelemahan terhadap
XSS Injection atau SQL Injection.
Dilakukan pengembangan terhadap proses diatas yang
dijelaskan sebelumnya menjadi aplikasi ini yang terdiri dari beberapa
menu. Aplikasi ini terdapat empat macam cara pencarian yaitu
pencarian terhadap alamat Url yang sedang aktif, halaman yang sedang
dibuka, seluruh alamat Url (link) dalam satu website baik secara cepat
pengguna dalam hal waktu yang dibutuhkan untuk proses pencarian.
Dari empat macam pencarian memiliki waktu yang berbeda dalam
prosesnya masing-masing. Aplikasi ini juga ditambahkan beberapa
menu tambahan yaitu menu untuk melihat informasi mengenai domain
yang digunakan oleh website tersebut, informasi koneksi internet yang
dipergunakan oleh pengguna saat itu, dan informasi cookie pada
browser Google Chrome yang sesuai dengan nama domain yang
sedang dibuka. Berikut adalah pembahasan empat sub menu pada menu
pencarian kelemahan terhadap SQL Injection maupun XSS Injection.
Sub menu pertama adalah pencarian pada alamat Url yang sedang
dibuka. Algoritma dari proses submenu ini ada pada Gambar 3.3.
Gambar 3.3 Diagram Alur Scan terhadap Url
Aplikasi membutuhkan data masukan tetapi data masukan
langsung diambilkan dari alamat Url pada tab yang sedang aktif. Jika
beberapa alamat Url baru dari hasil pengubahan terhadap alamat Url
yang sebenarnya. Aplikasi akan mengakses halaman dengan alamat Url
yang belum dan sudah diubah. Hasil dari akses terhadap alamat Url
yang diubah dengan yang belum diubah akan dideteksi apakah terdapat
positif ciri-ciri SQL Injection maupun XSS Injection atau tidak. Jika
positif maka aplikasi menampilkan alamat Url yang berhasil
menandakan kemungkinanadanya kelemahan terhadap SQL Injection
maupun XSS Injection tetapi jika tidak maka aplikasi memunculkan
keterangan kalau alamat URL telah aman.
Submenu kedua adalah pencarian kelemahan terhadap SQL
Injection maupun XSS Injection pada halaman yang sedang dibuka.
Algoritma pada proses submenu ini ada pada Gambar 3.4.
Algoritma pada proses yang terjadi pada gambar 3.4 hampir
sama dengan proses pencarian kelemahan terhadap SQL Injection
maupun XSS Injection pada Url sebelumnya tetapi perbedaannya
adalah proses pencarian dilakukan berulang sesuai banyaknya alamat
Url (link) yang didapat dari halaman yang dibuka (grabber) dan yang
masih dalam satu website. Setiap alamat Url (link) dilakukan pencarian
sampai semua link selesai dilakukan pencarian kerentanan terhadap
SQL Injection maupun XSS Injection. Setelah selesai barulah aplikasi
menampilkan beberapa alamat URL (link) yang rentan terhadap injeksi
SQL maupun XSS.
Submenu ketiga adalah pencarian kelemahan terhadap SQL
Injection maupun XSS Injection pada website yang sedang dibuka.
Gambar 3.5 Diagram Alur Scan pada SITE
Algoritma pada proses yang terjadi pada gambar 3.5 hampir
sama dengan proses pencarian kelemahan terhadap SQL Injection
maupun XSS Injection pada PAGE sebelumnya tetapi perbedaannya
adalah terdapat proses pencarian semua alamat Url (link) pada sebuah
halaman Url (grabber) yang dilakukan secara berulang sampai antrian
untuk dilakukan (grabber) sudah kosong. Pada semua alamat Url (link)
didaftarkan ke antrian yang akan dilakukan (grabber) apabila link
tersebut belum dilakukan (grabber). Setelah antrian alamat Url (link)
yang akan dilakukan (grabber) barulah aplikasi menampilkan beberapa
link yang rentan terhadap SQL Injection maupun XSS Injection.
Sub menu yang terakhir adalah pencarian kelemahan terhadap
SQL Injection maupun XSS Injection pada website yang sedang dibuka
tetapi hanya mencari satu alamat Url (link) yang rentan pada website
tersebut. Aplikasi pada proses submenu ini ada pada Gambar 3.6.
Algoritma pada proses yang terjadi pada gambar 3.6 hampir
sama dengan proses pencarian kelemahan terhadap SQL Injection
maupun XSS Injection pada SITE sebelumnya tetapi perbedaannya
adalah terdapat pemberhentian keseluruhan proses bila aplikasi sudah
menemukan satu alamat Url (link) yang memiliki kerentanan terhadap
SQL Injection maupun XSS Injection.
Aplikasi juga dilengkapi beberapa menu tambahan yaitu menu
INFO dengan dua submenu yaitu informasi mengenai domain yang
dipakai oleh website pada tab yang aktif dan informasi mengenai
koneksi yang dipergunakan oleh pengguna. Menu tambahan terakhir
adalah menampilkan informasi mengenai cookie yang sesuai dengan
nama domain website pada tab yang sedang aktif. Algoritma pada
proses submenu untuk informasi mengenai domain website ada pada
Gambar 3.7.
Gambar 3.7 Diagram Alur Informasi Domain Website
Algoritma pada proses yang terjadi pada gambar 3.7 adalah
domain website pada tab yang sedang aktif. Aplikasi mendapatkan
informasi dari website http://who.is/whois/(nama_website) dimana
(nama website) didapat dari alamat Url. Hasil informasi yang didapat
akan dipilah-pilah dan hasilnya ditampilkan.
Sub menu yang terakhir adalah menampilkan informasi
mengenai koneksi yang dipergunakan oleh pengguna. Algoritma pada
proses submenu ini ada pada Gambar 3.8.
Gambar 3.8 Diagram Alur Informasi Koneksi Pengguna
Algoritma pada proses yang terjadi pada Gambar 3.8 adalah
proses mengenai bagaimana aplikasi menampilkan informasi mengenai
koneksi internet yang dipakai oleh pengguna. Aplikasi mendapatkan
informasi dari website http://www.ip-address.org/ dan hasil
informasinya dipilah-pilah untuk diambil informasi yang penting.
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 Ar sitektur Sistem WVS
Untuk perancangan antar muka aplikasi WVS, di bawah ini
akan ditunjukkan blok arsitektur sistem dari Web Vulnerability
Scanner yang digunakan pada proyek akhir ini :
Gambar 3.9Blok Arsitektur Sistem WVS
Dari Gambar 3.9 dapat diketahui :
a.Aplikasi yang dibangun melakukan request ke server berupa Url
yang diinputkan.
b.Server memberikan respon berupa HTML.
c.Aplikasi WVS mencari respon HTML tersebut, kemudian
mendapatkan struktur Url dari hasil scan dan menginjeksi
Server Aplikasi
Nama aplikasi
clientside yang diambil dari Datatext.
d.Aplikasi WVS mengirim request ke server berupa struktur Url
hasil pencarian yang telah di injeksi.
e.Server mengirim respon hasil injeksi ke aplikasi WVS.
f.Aplikasi WVS memberikan report hasil keseluruhan.
3.5.2 Tampilan Antar Muka Aplikasi
Untuk perancangan antar muka aplikasi ini seperti pada
Gambar 3.10.
Gambar 3.10 Tampilan Antar Muka Aplikasi
Tampilan aplikasi pada Gambar 3.10 cukup sederhana dengan
latar belakang warna putih yang dibagi atas 4 bagian yang dibatasi
sebuah garis. Bagian-bagian tersebut diantaranya adalah bagian nama
aplikasi dengan nama VULNERABILITY SCANNER yang sesuai
dengan fungsi utamanya yaitu pencarian kerentanan pada sebuah
menu utama beserta submenu untuk masing-masing menu utamanya.
Bagian berikutnya adalah menampilkan hasil akhir dari proses setiap
submenu yang dipilih. Bagian terakhirnya adalah menu untuk
menyimpan hasil akhir untuk disalin ke clipboard komputer pengguna
atau disimpan ke sebuah file.
3.5.3 Per ancangan Uji Coba
Untuk perancangan uji coba yang akan dilakukan untuk
aplikasi ini adalah melakukan pengujian dalam mencari kelemahan
beberapa website terhadap SQL Injection dan XSS Injection. Untuk
mendeteksi kelemahan website terhadap SQL Injection, aplikasi akan
mengubah alamat Url dengan menambahkan simbol (‘) setelah simbol
(=) sedangkan untuk kelemahan website terhadap XSS Injection akan
mengubah alamat Url dengan menambahkan script
(<strong><em><s> HACKED_BY_XSS </s></em></strong>');
</script>).
Untuk setiap sub menu pada menu utama Scan SQLi dan
Scan XSS akan dilakukan pencarian kelemahan pada alamat website
yang berbeda sehingga akan ada 4 alamat website yang berbeda yang
akan dicari kelemahannya terhadap SQL Injection dan 4 alamat
terhadap XSS Injection. Dan 3 uji coba lainnya untuk menu utama
Ingo yang memiliki 2 sub menu yaitu Info untuk Domain dan Info
untuk Client dan menu terakhir untuk menu Info Cookie. Tujuan dari
juga keberhasilan aplikasi untuk mendapatkan Info mengenai domain
sebuah website dan Info untuk koneksi internet yang dipergunakan
oleh pengguna. Terakhir keberhasilan aplikasi untuk mendapatkan
nama dan nilai cookie sesuai website yang sedang dibuka. Aplikasi
akan diuji cobakan pada kondisi komputer yang terkoneksi dengan
internet. Aplikasi ini dijalankan bersama aplikasi Browser Google
Chrome karena aplikasi ini sebuah Add Ons untuk Browser Google
Chrome.
Untuk kriteria website yang akan dilakukan pencarian
kelemahan harus mempunya pengiriman nilai dari halaman ke
halaman lainnya dengan metode GET. Website juga harus ditulis
secara baku dalam hal penulisan tag HTML untuk link jika tidak maka
aplikasi tidak bisa mendapatkan link dari website tersebut. Jika
aplikasi berhasil maka aplikasi akan memunculkan informasi beberapa
alamat Url yang sudah dimodifikasi yang berhasil melakukan injeksi
pada website tersebut. Jika saat proses terjadi kesalahan maka aplikasi
tidak akan menampilkan informasi hasil. Kemungkinan terjadi
kegagalan saat website tersebut memiliki keamanan dalam hal
keamanan akses sebuah halaman tertentu sehingga aplikasi berhenti
mendadak atau website ditulis secara tidak baku dalam penulisan tag
4.1 IMPLEMENTASI SISTEM
Dari desain sistem yang telah dibuat sebelumnya, maka dapat di
implementasikan seperti beberapa contoh tampilan berikut :
4.1.1 Tampilan utama
Ini (Gambar 4.1) merupakan tampilan awal pada saat aplikasi
di panggil :
Gambar 4.1 Tampilan Menu Utama
Pada tampilan utama terdiri atas 4 bagian yang dibatasi oleh 3
garis. Bagian pertama adalah nama aplikasi yaitu VULNERABILITY
Bagian ketiga adalah hasil proses aplikasi sesuai pilihan menu yang
dipilih oleh pengguna. Bagian keempat adalah menu untuk
menyimpan hasil proses. Tampilan menu utama dibuat dengan warna
dasar adalah putih karena terlihat sederhana, jelas, dan nyaman dilihat
oleh pengguna.
4.1.2 Halaman ScanningSQL Injection pada Url
Halaman ini berfungsi untuk melakukan pencarian kelemahan
alamat Url pada tab yang sedang aktifterhadap SQL Injection dengan
mengakses alamat Url yang sudah dimodofikasi dengan
menambahkan simbol (‘) setelah simbol (=) pada alamat Url yang
didapatdari alamat Url pada tab yang sedang aktif.
Gambar 4.2 Halaman Scanning SQL Injection pada URL
Berikut adalah Pseudo Code dari Proses Scanning SQL
1. call show_loading()
2. call start_elapsed_time() dan store to mulai_proses
3. declare jumlah_link_sudah_diperiksa and set 0
4. declare jumlah_link_sudah_dideteksi and set 0
5. declare variabel html and set null
6. set currentURL = alamat URL pada tab yang aktif
7. call check_sql_inject(currentURL) and store to hasil_scan_SQLi
8. set jumlah_link_sudah_diperiksa + 1
9. if hasil_scan_SQLi is “KOSONG” then
a.settemp_html = “URL aman”
10.else
a.set temp_html = hasil_scan_SQLi
b.set jumlah_link_sudah_dideteksi + 1
11.call stop_elapsed_time()
12.print jumlah_link_sudah_diperiksa and jumlah_link_sudah_dideteksi
13.print and call get_elapsed_time(mulai_proses,selesai_proses)
14.call hide_loading()
15.print temp_html
Potongan Source Code :
function get_sqli(callback)
{chrome.tabs.getSelected(null, function(tab)
{var temp_html = "<table>"; var currentURL = tab.url; report("mengakses :" + currentURL); var hasil_scan_SQLi = check_sql_inject(currentURL); jumlah_link_sudah_diperiksa++; report("hasil : " +
hasil_scan_SQLi.substring(hasil_scan_SQLi.indexOf("readonly= \"yes\";>") + 16, hasil_scan_SQLi.indexOf("</div>"))); if(hasil_scan_SQLi == "KOSONG") temp_html += '<tr><td align="center" id="hasil_scan"> URL AMAN
</td></tr>';
else{temp_html += hasil_scan_SQLi; jumlah_link_sudah_dideteksi++;}
Aplikasi sebelum proses akan memunculkan gambar “please
wait …”. Aplikasi mengambil alamat Url pada tab yang sedang aktif
sebagai data masukan. Alamat Url tersebut dicari kelemahannya
terhadap SQL Injection oleh fungsi check_sql_inject(). Jika hasil
hasil maka aplikasi akan memunculkan alamat Url yang sudah
dimodifikasi yang terbukti mempunyai kelemahan terhadap SQL
Injection. Setelah proses selesai aplikasi akan memunculkan hasil
pencarian.
4.1.3 Halaman ScanningSQL Injection pada PAGE
Halaman ini berfungsi untuk melakukan pencarian kelemahan
alamat Url pada tab yang sedang aktif terhadap SQL Injection dengan
cara mengakses semua alamat Url yang didapat pada halaman dengan
alamat pada tab yang sedang aktif dan selanjutnya dimodofikasi
dengan menambahkan simbol (‘) setelah simbol (=) pada semua
alamat Url yang ditemukan dan bisa dimodofikasi. Menu Sub menu
ini seperti Gambar 4.4
Gambar 4.3 Halaman Scanning SQL Injection pada PAGE
Berikut adalah Pseudo Code dari Proses Scanning SQL
1. call show_loading()
2. call start_elapsed_time() dan store to mulai_proses
3. declare jumlah_link_sudah_diperiksa and set 0
4. declare jumlah_link_sudah_dideteksi and set 0
5. declare variabel html and set null
6. declare array_URL as new array
7. set currentURL = alamat URL pada tab yang aktif
8. call get_all_urls(currentURL) and store to array_URL
9. loop i from 0 until length of array_URL
a. if array_URL[i] have word “#####POST#####” then
1)call check_sql_inject_post(array_URL[i]) and store to
hasil_scan_SQLi
2)set jumlah_link_sudah_diperiksa + 1
b. else
1)call check_sql_inject(array_URL[i]) and store to hasil_scan_SQLi
2)set jumlah_link_sudah_diperiksa + 1
10.if hasil_scan_SQLi is “KOSONG” then
a. settemp_html = “URL aman”
11.else
a. set temp_html = hasil_scan_SQLi
b. set jumlah_link_sudah_dideteksi + 1
12.call stop_elapsed_time()
13.print jumlah_link_sudah_diperiksa and jumlah_link_sudah_dideteksi
14.print and call get_elapsed_time(mulai_proses,selesai_proses)
15.call hide_loading()
16.print temp_html
Potongan Source Code :
function get_links(callback)
{chrome.tabs.getSelected(null, function(tab)
{var array_URL = new Array();report("mengambil semua link pada halaman " + tab.url); array_URL =
{report("mengakses :" + jumlah_link_sudah_diperiksa++;} report("hasil : " +
hasil_scan_SQLi.substring(hasil_scan_SQLi.indexOf("readonly= \"yes\";>") + 16,hasil_scan_SQLi.indexOf("</div>")));
if(hasil_scan_SQLi != "KOSONG"){temp_html += hasil_scan_SQLi; jumlah_link_sudah_dideteksi++}
Aplikasi mengambil alamat Url pada tab yang sedang aktif
sebagai data masukan. Alamat Url tersebut akan dicari semua alamat
Url yang terdapat pada halaman Url tersebut dengan fungsi
get_all_urls(). Semua alamat Url yang didapat akan diperiksa
apakah memiliki kelemahan terhadap SQL Injection oleh fungsi
check_sql_inject() (alamat Url mengirim nilai dengan metode
GET) dan check_sql_inject_post() (alamat Url mengirim nilai
dengan metode POST). Jika hasil pencarian dari semua alamat Url
yang ditemukan kosong maka aplikasi menyatakan halalam Url
tersebut aman jika tidak maka aplikasi akan menunjukkan beberapa
alamat Url yang memiliki kelemahan terhadap SQL Injection. Setelah
proses pencarian selesai maka aplikasi menunjukkan hasil proses
4.1.4 Halaman ScanningSQL Injection pada SITE
Halaman ini berfungsi untuk melakukan pencarian kelemahan
website pada tab yang sedang aktif terhadap SQL Injection dengan
cara mengakses semua alamat Url yang didapat pada website tersebut
dan selanjutnya dimodofikasi dengan menambahkan simbol (‘) setelah
simbol (=) pada semua alamat Url yang ditemukan dan bisa
dimodofikasi. Pada menu kali ini pencarian dilakukan secara cepat
dalam arti pencarian akan berhenti bila sudah ditemukan satu alamat
Url pada website tersebut yang memiliki kelemahan terhadap SQL
Injection.
Gambar 4.4 Halaman Scanning SQL Injection pada SITE dengan cepat
Pada submenu terakhir sama dengan submenu sebelumnya
tetapi proses pencarian tidak berhenti saat ditemukan satu alamat Url
yang memiliki kelemahan terhadap SQL Injection melainkan proses