IMPLEMENTASI WEB VULNERABILITY SCANNER SEBAGAI ADD ONS GOOGLE CHROME.

118  Download (1)

Teks penuh

(1)

SKRIPSI

Oleh :

ADITYA WARDANA

0734010035

J URUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

J AWA TIMUR

(2)

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

(3)

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.

(4)

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

(5)

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

(6)
(7)

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)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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"

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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.

(34)

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

(35)

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

(36)

Gambar 2.7 Hasil dari pemasangan extensi

Jika tidak muncul popup yang berisikan hasil tag HTML yang ditulis

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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.

(45)

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.

(46)

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)

(47)

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.

(48)

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

(49)

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.

(50)

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

(51)

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

(52)

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

(53)

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

(54)

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

(55)

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

(56)

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">&nbsp; URL AMAN

&nbsp;</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

(57)

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

(58)

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 =

(59)

{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

(60)

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

Figur

Gambar 2.5 Contoh extensi yang sudah jadi

Gambar 2.5

Contoh extensi yang sudah jadi p.33
Gambar 2.7 Hasil dari pemasangan extensi

Gambar 2.7

Hasil dari pemasangan extensi p.36
Gambar 3.3 Diagram Alur Scan terhadap Url

Gambar 3.3

Diagram Alur Scan terhadap Url p.43
Gambar 3.6 Diagram Alur Scan pada SITE Secara Cepat

Gambar 3.6

Diagram Alur Scan pada SITE Secara Cepat p.47
Gambar 3.9 Blok Arsitektur Sistem WVS

Gambar 3.9

Blok Arsitektur Sistem WVS p.50
Gambar 4.1 Tampilan Menu Utama

Gambar 4.1

Tampilan Menu Utama p.54
Gambar 4.2 Halaman Scanning SQL Injection pada URL

Gambar 4.2

Halaman Scanning SQL Injection pada URL p.55
Gambar 4.10 Halaman Informasi Domain Website

Gambar 4.10

Halaman Informasi Domain Website p.73
Gambar 4.11 Halaman Informasi Client Connection

Gambar 4.11

Halaman Informasi Client Connection p.75
Gambar 4.12 Halaman Get Information about Cookie

Gambar 4.12

Halaman Get Information about Cookie p.77
Gambar 5.2 Tampilan sebelum diinjeksi SQL pada Tab Url

Gambar 5.2

Tampilan sebelum diinjeksi SQL pada Tab Url p.85
Gambar 5.3 Hasil Scanning SQL Injection pada Tab Url

Gambar 5.3

Hasil Scanning SQL Injection pada Tab Url p.86
Gambar 5.4 Tampilan sesudah diinjeksi SQL pada Tab Url

Gambar 5.4

Tampilan sesudah diinjeksi SQL pada Tab Url p.86
Gambar 5.6 Tampilan sebelum diinjeksi SQL pada Page

Gambar 5.6

Tampilan sebelum diinjeksi SQL pada Page p.88
Gambar 5.6 adalah tampilan halaman website yang belum

Gambar 5.6

adalah tampilan halaman website yang belum p.88
Gambar 5.10 adalah tampilan halaman website yang belum

Gambar 5.10

adalah tampilan halaman website yang belum p.91
Gambar 5.12 Tampilan sesudah diinjeksi SQL pada Site (cepat)

Gambar 5.12

Tampilan sesudah diinjeksi SQL pada Site (cepat) p.91
Gambar 5.15 Hasil Scanning SQL Injection pada Site (penuh)

Gambar 5.15

Hasil Scanning SQL Injection pada Site (penuh) p.93
Gambar 5.14 Tampilan sebelum diinjeksi SQL pada Site (penuh)

Gambar 5.14

Tampilan sebelum diinjeksi SQL pada Site (penuh) p.93
Gambar 5.16 Tampilan sesudah diinjeksi SQL pada Site (penuh)

Gambar 5.16

Tampilan sesudah diinjeksi SQL pada Site (penuh) p.94
Gambar 5.18 Tampilan sebelum diinjeksi XSS pada Tab Url

Gambar 5.18

Tampilan sebelum diinjeksi XSS pada Tab Url p.96
Gambar 5.19 Hasil Scanning XSS Injection pada Tab Url

Gambar 5.19

Hasil Scanning XSS Injection pada Tab Url p.96
Gambar 5.20 Tampilan sesudah diinjeksi XSS pada Tab Url

Gambar 5.20

Tampilan sesudah diinjeksi XSS pada Tab Url p.97
Gambar 5.22 Tampilan sebelum diinjeksi XSS pada Page

Gambar 5.22

Tampilan sebelum diinjeksi XSS pada Page p.98
Gambar 5.23 Hasil Scanning XSS Injection pada Page

Gambar 5.23

Hasil Scanning XSS Injection pada Page p.99
Gambar 5.24 Tampilan sesudah diinjeksi XSS pada Page

Gambar 5.24

Tampilan sesudah diinjeksi XSS pada Page p.100
Gambar 5.26 Tampilan sebelum diinjeksi XSS pada Site (cepat)

Gambar 5.26

Tampilan sebelum diinjeksi XSS pada Site (cepat) p.101
Gambar 5.31 Tampilan sebelum diinjeksi XSS pada Site (penuh)

Gambar 5.31

Tampilan sebelum diinjeksi XSS pada Site (penuh) p.104
Gambar 5.33 Tampilan sesudah diinjeksi XSS pada Site (penuh)

Gambar 5.33

Tampilan sesudah diinjeksi XSS pada Site (penuh) p.105
Gambar 5.32 Hasil Scanning XSS Injection pada Site (penuh)

Gambar 5.32

Hasil Scanning XSS Injection pada Site (penuh) p.105

Referensi

Memperbarui...