Anda di halaman 1dari 27

LAPORAN

TUGAS APLIKASI

Web Testing to Finding Vulnerabilty of URL


Injection by Perl Script

OLEH:
GABRIEL IRFON ELROHI SOEN - 52013019

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER


STMIK KHARISMA MAKASSAR
2017

i
HALAMAN PERSETUJUAN / PENGESAHAN
TUGAS APLIKASI

Web Testing to Finding Vulnerabilty of URL Injection


by Perl Script

DISUSUN OLEH:
GABRIEL IRFON ELROHI SOEN - 52013019

MAKASSAR, Juli 2017

Disetujui Oleh:
Pembimbing

Ahyar Muawwal S.Kom., M.T.

ii
KATA PENGANTAR

Puji syukur saya panjatkan kepada Tuhan Yesus Kristus karena rahmat dan
kasih karuniaNya sehingga saya dapat menyelesaikan segala laporan tugas aplikasi
saya yang berjudul "Web Testing to Finding Vulnerabilty of URL Injection by Perl
Script" dengan sukses.
Dengan penuh rasa syukur, penulis mengucapkan terima kasih yang sedalam-
dalamnya pada keluarga yang telah mendukung dan memberikan semangat serta doa
dalam menyelesaikan tugas ini, Bapak Ahyar Muawwal, S.Kom., M.T. selaku
pembimbing yang telah banyak memberikan saran, masukan dan dukungan kepada
penulis, serta seluruh teman-teman dan sahabat-sahabat yang telah banyak
memberikan bantuan yang tidak akan pernah terlupakan dan dukungan yang kuat
dalam penulisan laporan ini, khususnya salah satu sahabat saya yang membantu
penulisan laporan ini, Tiffany V. G., ditengah kesibukan saya yang cukup padat, dan
dukungan sahabat-sahabat lain, Iprasetyo T.W., dan Fardhy W.
Tujuan utama saya pembuatan aplikasi ini, untuk mempermudah para
pembuat web, ataupun para teknisi keamanan website yang ingin mengetahui tingkat
kerentanan website buatan mereka terhadap serangan 'URL Injection', agar mereka
dapat meningkat keamanan website mereka. Aplikasi ini juga dapat digunakan bagi
para akademik yang ingin belajar lebih lanjut tentang keamanan, dan tidak digunakan
untuk tindakan-tindakan yang tidak sesuai hukum berlaku.
Akhir kata, penulis mengucapkan mohon maaf apabila dalam pengerjaan
tugas ini terdapat kesalahan yang baik sengaja maupun tidak sengaja dilakukan oleh
penulis. Besar harapan penulis agar laporan ini dapat bermanfaat bagi semua
pembaca. Sekian dan terima kasih.

Makassar, Juli 2017

iii
DAFTAR ISI

Halaman Judul.......................................................................................................... i

Lembar Persetujuan .................................................................................................ii

Kata Pengantar ....................................................................................................... iii

Daftar Isi ..................................................................................................................iv

Daftar Gambar .........................................................................................................vi

Daftar Tabel ............................................................................................................ vii

Bab 1 Pendahuluan

1.1. Deskripsi Aplikasi ............................................................................. 1


1.2. Spesifikasi Aplikasi
1.2.1. Mendeteksi Parameter URL (Per Halaman) .......................... 2
1.2.2. Mendeteksi Parameter URL (Seluruh Halaman) ................... 2
1.2.3. Memberikan Panduan Penggunaan pada User ..................... 2
1.3. Arsitektur Aplikasi ............................................................................. 3

Bab 2 Rancangan Aplikasi

2.1. Model Fungsi


2.1.1. Keseluruhan Sistem .............................................................. 4
2.1.2. Use Case Diagram
2.1.2.1. Use Case Mendeteksi Parameter URL (Per
Halaman) ............................................................. 4
2.1.2.2. Use Case Mendeteksi Parameter URL (Seluruh
Halaman) ............................................................. 5
2.1.2.3. Use Case Melihat Panduan ................................. 6
2.2. Model Data
2.2.1. Struktur Data ......................................................................... 6
2.3. Model Behavior
2.3.1. Flowchart

iv
2.3.1.1. Flowchart Program Utama ................................... 7
2.3.1.2. Flowchart Lanjutan (A) dari Program Utama ........ 8
2.3.1.3. Flowchart Function GetParams............................ 8
2.3.1.4. Flowchart Function Pencarian Vulnerability ......... 9
2.3.1.5. Flowchart Function Pencarian Halaman............. 10
2.3.2. Rancangan Input
2.3.2.1. Form Utama ....................................................... 11
2.3.2.2. Mendeteksi Parameter URL ............................... 11
2.3.2.3. Mendeteksi Kelemahan Alamat Web ................. 11
2.3.3. Rancangan Output .............................................................. 12
2.3.3.1. Notifikasi Hasil Deteksi ...................................... 12
2.3.3.2. Panduan Penggunaan ....................................... 12

Bab 3 Panduan Aplikasi

3.1. Layar Utama ................................................................................... 14


3.2. Gagal Koneksi ................................................................................ 14
3.3. Deteksi pada Sebuah Halaman (syntax (-p)) .................................. 15
3.4. Deteksi pada Sebuah Halaman (syntax (-singlepage)) ................... 15
3.5. Deteksi Seluruh Halaman pada Sebuah Alamat Web (syntax (-a)) . 16
3.6. Deteksi Seluruh Halaman pada Sebuah Alamat Web (syntax (-allpage))
....................................................................................................... 17
3.7. Panduan Program .......................................................................... 18
3.8. Deteksi Halaman Web Gagal dengan Pencarian Menggunakan syntax
(-allpage) (Validasi)......................................................................... 19
3.9. Kesalahan dalam Memasukkan syntax (Validasi) ........................... 19

v
DAFTAR GAMBAR

Gambar 1.1. Arsitektur Aplikasi............................................................................... 3

Gambar 2.1 Use Case Diagram .............................................................................. 4

Gambar 2.2. Use Case Mendeteksi Parameter URL (Per Halaman) ....................... 4

Gambar 2.3. Use Case Mendeteksi Parameter URL (Seluruh Halaman) ................ 5

Gambar 2.4. Use Case Melihat Panduan Penggunaan .......................................... 6

Gambar 2.5. Flowchart Program Utama ................................................................. 7

Gambar 2.6. Flowchart Lanjutan (A) ....................................................................... 7

Gambar 2.7. Flowchart Function Pencarian Vulnerability ........................................ 8

Gambar 2.8. Flowchart Function Pencarian Halaman ............................................. 9

Gambar 2.9. Gambar Form Utama ....................................................................... 10

Gambar 2.10. Gambar Rancangan Output ........................................................... 10

Gambar 2.11. Rancangan Tombol untuk Lampu .................................................. 12

Gambar 3.1. Layar Awal ....................................................................................... 14

Gambar 3.2. Tampilan Gagal Koneksi .................................................................. 14

Gambar 3.3. Tampilan Syntax -p .......................................................................... 15

Gambar 3.4. Tampilan Implementasi syntax –singlepage (1) ................................ 15

Gambar 3.5. Tampilan Implementasi syntax –singlepage (2) Gagal ..................... 16

Gambar 3.6. Tampilan Implementasi syntax -a ..................................................... 16

Gambar 3.7. Tampilan Implementasi syntax –allpage (1) ..................................... 17

Gambar 3.8. Tampilan Implementasi syntax –allpage (2) ..................................... 17

Gambar 3.9 Tampilan Implementasi syntax -h ...................................................... 18

vi
Gambar 3.10. Tampilan Implementasi Syntax ? ................................................... 18

Gambar 3.11. Tampilan Validasi Alamat Web....................................................... 19

Gambar 3.12. Tampilan Validasi Kesalahan Syntax ............................................. 19

vii
DAFTAR TABEL

Tabel 2.1. Tabel Struktur Data ................................................................................. 6

viii
BAB 1

PENDAHULUAN

1.1. DESKRIPSI APLIKASI


Sejak dahulu kala, perkembangan teknologi tidak habis-habisnya
mengalami revolusi terutama di bidang komunikasi. Perkembangan teknologi
seperti komputer dan internet telah menjadi suatu kebutuhan di masyarakat
masa kini. Teknologi ini memiliki pengaruh besar di masyarakat dengan
berbagai cara. Seiring dengan perkembangannya, kebutuhan akan teknologi
pun terus meningkat sehingga keamanan di bidang tertentu sangat penting
sebagai salah satu bentuk privasi yang harus dijaga.
Seperti contoh, keamanan pada sebuah Bank. Bank membutuhkan
keamanan yang sangat ketat karena data seorang nasabahpun akan sangat
fatal akibatnya apabila diketahui oleh pihak ketiga. Apalagi dengan data-data
penting yang harus terjaga privasinya.
Keamanan yang paling rentan diretas sendiri adalah Web. Serangan
Web sendiri sering disebut dengan Serangan Cyber. Dimana dilakukan oleh
peretas-peretas ahli yang berniat untuk mencuri atau menghapus data-data
pribadi milik suatu instansi atau perusahaan. Apabila keamanan Web dari
perusahaan itu sendiri lemah, maka serangan Cyber tersebut tidak terelakkan.
Pada serangan ini, hacker akan mencari celah saat server lengah. Kemudian
data penting yang didapatnya akan digunakan sebagai pengancam pada
perusahaan, atau mungkin saja, hacker berniat merusak data yang
dimasukkan agar terjadi kesalahan pada data penting tersebut.
Banyak pembuat Web perusahaan yang masih keliru dalam
menangani tingkat keamanan webnya sehingga seringkali web tersebut
memiliki celah yang besar untuk diserang. Sehingga dengan ini, penulis
berkeinginan membuat sebuah aplikasi berbasis cmd dimana aplikasi ini
berguna sebagai pendeteksi tingkat kelemahan (vulnerability) setiap halaman
dari sebuah web. Aplikasi ini sendiri akan berfokus mendeteksi kelemahan

1
pada alamat URL website yang berpotensi diserang oleh Serangan Cyber.
Serangan ini sendiri biasa disebut URL Injection.
Syntax atau perintah-perintah yang digunakan dalam membangun
aplikasi ini sendiri menggunakan bahasa pemrograman Perl. Bahasa ini
sendiri dikembangkan dari implementasi bahasa C serta beberapa bahasa
lainnya seperti Shell Script dan AWK sehingga bahasa ini tergolong memiliki
dukungan yang kuat terhadap fungsionalitasnya. Bahasa Perl sendiri bersifat
open-source yang memiliki lebih dari 25000 modul library yang dapat
digunakan.

1.2. SPESIFIKASI APLIKASI


1.2.1. Mendeteksi Parameter URL (Per Halaman)
Akan ada syntax atau perintah yang akan dimasukkan, berfungsi untuk
mencari kelemahan pada satu halaman saja. Pencarian ini berupa pemilah
parameter. Halaman suatu website biasanya memiliki lebih dari 1 parameter.
Contoh:
www.google.com/?q=coba+cari+kata&id=23&lokasi=makasar

3 parameter yang ada berupa: q, id, dan lokasi. Diantara 3 parameter


ini akan dilakukan pencarian celah mana yang mudah diinjeksi oleh hacker.
Pada URL Injection, biasanya hacker akan memasukkan perintah khusus yang
bersifat rahasia untuk merusak data. Hasil yang ditampilkan berupa parameter
yang berpeluang diinjeksi.

1.2.2. Mendeteksi Parameter URL (Seluruh Halaman)


Sebuah alamat web tentu saja memiliki banyak halaman didalamnya,
baik itu bersifat umum maupun pribadi. Sehingga akan ada syntax atau
perintah yang bertugas untuk mendeteksi beberapa ataupun seluruh halaman
yang berada dalam sebuah alamat web. Perintah tersebut nantinya akan
menampilkan daftar halaman yang lemah, yang berpeluang terkena URL
Injection.

2
1.2.3. Memberikan Panduan Penggunaan pada User
Setiap aplikasi berbasis apapun tentu saja memerlukan fitur ini.
Dimana fitur ini akan membantu pengguna sebelum menjalankan aplikasi
tersebut. Syntax atau perintah yang digunakan akan memberikan panduan
terhadap fitur yang disediakan beserta fungsinya.

1.3. ARSITEKTUR APLIKASI


Skema dibawah ini menunjukkan arsitektur dari keseluruhan dari
sistem. Dimana User yang biasanya merupakan Administrator Jaringan,
Pembuat Web, dan sebagainya sebagai user yang ingin men-test sebuah web,
apakah rentan terhadap URL Injection. User terlebih dahulu menginstall perl
jika belum ada. Perl sendiri adalah multiplatform yang dapat digunakan di
windows maupun linux, sehingga sangat cocok untuk Administrator Jaringan.
Kemudian User akan menjalankan perl script yang Penulis buat di command
prompt atau terminal linux. User akan memasukkan syntax-syntax tertentu
untuk spesifik tugas. Ketika perintah dijalankan, aplikasi akan secara otomatis
terkoneksi dengan internet untuk mengakses website yang ingin di-test, dan
aplikasi akan menampilkan daftar list page dan daftar parameter yang bisa
diinjection dari masing-masing halaman URL tersebut.

Gambar 1.1. Arsitektur


Aplikasi

3
BAB 2
RANCANGAN APLIKASI
2.1. MODEL FUNGSI
Dalam mendeskripsikan fungsionalitas dari sistem secara lebih rinci,
penulis memilih Use Case Diagram sebagai model penggambaran sistem.
2.1.1. KESELURUHAN SISTEM
Dengan menggunakan Command Prompt (cmd), User dapat
memasukkan beberapa baris perintah untuk melakukan pencarian kelemahan
pada satu maupun seluruh halaman.

Gambar 2.1. Keseluruhan Sistem

2.1.2. Use Case Diagram


2.1.2.1. Use Case: Mendeteksi Parameter URL (Per Halaman)
Diagram:

Gambar 2.2. Use Case Mendeteksi Parameter URL (Per Halaman)


Deskripsi:
Pada proses pencarian kelemahan pada satu halaman saja,
diperlukan sebuah syntax atau perintah yang dimasukkan ke dalam baris
command prompt.

4
Step by Step:
1. Masukkan syntax diatas.
2. Tunggu hingga ada notifikasi User telah terhubung dengan halaman
web.
3. Pada proses ini, syntax akan bekerja dan mencari kelemahan pada
setiap parameter URL.
4. Akan ada notifikasi apakah halaman dari web tersebut rentan diinjeksi
oleh hacker atau tidak. Bila berpeluang diinjeksi, akan ditampilkan
parameter mana yang lemah.
2.1.2.2. Use Case: Mendeteksi Parameter URL (Seluruh Halaman)
Diagram:

Gambar 2.3. Use Case Mendeteksi Parameter URL (Seluruh Halaman)


Deskripsi:
Pada proses ini, akan ada syntax atau perintah yang dimasukkan ke
command prompt untuk melakukan pencarian kelemahan pada semua
halaman. Step by Step:
1. Masukkan syntax diatas.
2. Tunggu hingga muncul notifikasi User telah terhubung dengan halaman
web.
3. Syntax akan melakukan pencarian ke semua halaman yang alamat web
tersebut miliki.
4. Setelah proses pencarian selesai, akan muncul output berupa daftar
halaman apa saja yang berhasil ditemukan.
5. Kemudian akan dilakukan pencarian kelemahan dan menampilkan
daftar halaman serta masing-masing parameternya yang berpeluang
terkena injeksi.

5
6. Jika situs web tersebut terproteksi dengan baik maka akan muncul
notifikasi bahwa halaman tersebut tidak berpeluang terkena injeksi.
2.1.2.3. Use Case: Melihat Panduan Penggunaan
Diagram:

Gambar 2.4. Use Case Melihat Panduan Penggunaan


Deskripsi:
Pada proses ini, akan ada syntax atau perintah yang dimasukkan ke
dalam Command Prompt yang akan menampilkan panduan serta
fungsinya. Step by Step:
1. Masukkan syntax diatas.
2. Akan ada output yang menampilkan informasi berupa daftar syntax
beserta fungsinya.

2.2. MODEL DATA


2.2.1. Struktur Data
ListPage [] ListParam[] ListVul[]
Int id Int id Ind idParam
String urlPage Int idPage Int idParam
String paramVul
Tabel 2.1. Tabel Struktur Data

6
2.3. MODEL BEHAVIOR
2.3.1. Flowchart
2.3.1.1. Flowchart Program Utama

Gambar 2.5. Flowchart Program Utama

7
2.3.1.2. Flowchart Lanjutan (A) dari Program Utama

Gambar 2.6. Flowchart Lanjutan (A)

2.3.1.3. Flowchart Function GetParam

Gambar 2.7. Flowchart Function GetParam

8
2.3.1.4. Flowchart Function Pencarian Vulnerability

Gambar 2.8. Flowchart Function Pencarian Vulnerability

9
2.3.1.5. Flowchart Function Pencarian Halaman

Gambar 2.9. Flowchart Function Pencarian Halaman

2.3.2. Rancangan Input

Form Utama

Gambar 2.10. Gambar Form Utama

10
2.3.2.1. Nama Input : Mendeteksi Parameter URL
Syntax :

Perl MVulcan1619.pl <nama website dan halaman> -singlepage


Perl MVulcan1619.pl <nama website dan halaman> -p

Fungsi :Mendeteksi kelemahan halaman berdasarkan


parameter yang ada dalam halaman web.
Keterangan : Dengan memasukkan perintah, maka URL sebuah
halaman akan terdeteksi secara otomatis.

2.3.2.2. Nama Input : Mendeteksi Kelemahan Alamat Web


Syntax :
Perl MVulcan1619.pl <nama website atau halaman> -allpage
Perl MVulcan1619.pl <nama website atau halaman> -a
Fungsi : Melakukan pencarian vulnerability pada semua
halaman dalam sebuah web.
Keterangan : Dengan memasukkan perintah, maka web tersebut
akan terdeteksi secara otomatis.

2.3.2.3. Nama Input : Memberi Panduan Penggunaan


Syntax :
Perl MVulcan1619.pl <nama website atau halaman> -h
Perl MVulcan1619.pl <nama website atau halaman> ?
Fungsi : Memberi panduan penggunaan pada pengguna
yang belum mengetahui penggunaan syntax yang
tersedia.
Keterangan : Dengan memasukkan perintah, maka pada output
akan menampilkan daftar parameter yang tersedia.

11
2.3.3. Rancangan Output

Gambar 2.11. Gambar Rancangan Output

2.3.3.1. Nama Output : Notifikasi Hasil Deteksi


Fungsi : Memberi informasi kepada User mengenai hasil
deteksi potensi diinjeksinya halaman web tersebut.
Keterangan : Notifikasi berupa berhasil atau gagalnya halaman
tersebut dideteksi.
 Apabila berhasil, maka akan muncul notifikasi sebagai berikut:
web.com terhubung
mencoba mencari kelemahan halaman :
web.com/home.php?id=2
halaman ini punya peluang diinjeksi
Param yg bs diinjeksi : id
 Apabila gagal, maka akan muncul notifikasi sebagai berikut:
web.com terhubung
mencoba mencari kelemahan halaman :
web.com/home.php?id=2
halaman ini tidak berpeluang diinjeksi

2.3.3.2. Nama Output : Panduan Penggunaan


Fungsi : Memberi informasi mengenai perintah atau syntax

12
yang tersedia pada pengguna.
Keterangan : Notifikasi berupa daftar syntax beserta contohnya.
 Contoh output:

1. Mode Single Page

-p, -singlepage

Pencarian vulnerabilty spesifik pada hanya 1 halaman saja


yang sudah didefinisikan di parameter <url website>

Contoh :

perl MVulcan1619.pl web.com/home.php?id=2 -p

perl MVulcan1619.pl web.com/home.php?id=2 -singlepage

2. Mode All Page

-a, -allpage

Pencarian vulnerabilty dengan mencari di semua halaman,


di mana parameter <url website> didefinisikan cukup dengan
nama domain saja

Contoh :

perl MVulcan1619.pl web.com -a

perl MVulcan1619.pl web.com -singlepage

3. Help

-h, ?

Melihat panduan penggunaan.

Contoh :

perl MVulcan1619.pl web.com -h

perl MVulcan1619.pl web.com ?

13
BAB 3

PANDUAN APLIKASI

Berikut adalah panduan dalam aplikasi Web Testing berbasis cmd ini.
3.1. Layar Awal
Berikut adalah tampilan awal dari cmd.

Gambar 3.1. Layar Awal


3.2. Gagal Koneksi
Dibawah ini menunjukkan syntax akan digunakan pada sebuah web.
Apabila halaman web tidak dapat diakses, maka akan notifikasi bahwa koneksi
gagal.

Gambar 3.2. Tampilan Gagal Koneksi

14
3.3. Deteksi pada Sebuah Halaman (syntax (-p))
Apabila berhasil, maka akan ada notifikasi koneksi berhasil dan secara
otomatis akan mencari kelemahan pada alamat halaman tersebut. Dibawah ini
menunjukkan notifikasi serta jenis parameter yang berpotensi diinjeksi.

Gambar 3.3. Tampilan syntax (-p)

3.4. Deteksi pada sebuah halaman (syntax (-singlepage))


Selain menggunakan –p, dapat pula menggunakan syntax –singlepage
untuk menunjukkan kelemahan pada sebuah halaman, apakah berpotensi
untuk diinjeksi atau tidak. Output yang dihasilkan sama dengan syntax –p.
Gambar 3.5. menunjukkan output dimana halaman ini tidak berpotensi
terinjeksi.

Gambar 3.4. Tampilan Implementasi syntax –singlepage (1)

15
Gambar 3.5. Tampilan Implementasi syntax –singlepage (2) Gagal

3.5. Deteksi Seluruh Halaman Pada Sebuah Alamat Web (syntax (-a))
Dibawah ini adalah tampilan berupa notifikasi dan hasil deteksi dari
sebuah alamat web. Hasil berupa daftar halaman yang ditemukan, serta daftar
parameter dari setiap alamat tersebut yang berpeluang diinjeksi.

Gambar 3.6. Tampilan Implementasi syntax -a

16
3.6. Deteksi seluruh halaman pada sebuah alamat web (syntax (-allpage))
Sama seperti syntax –a, hasil yang didapat oleh syntax ini akan sama.
Apabila alamat web tersebut tidak dapat diinjeksi, maka akan notifikasi
seperti dibawah ini.

Gambar 3.7. Tampilan Implementasi syntax –allpage (1)

Gambar 3.8. Tampilan Implementasi syntax –allpage (2)

17
3.7. Panduan Program
Berikut adalah tampilan panduan dari program ini. Panduan berupa parameter
yang tersedia dalam aplikasi ini.

Gambar 3.9. Tampilan Implementasi syntax -h

Gambar 3.10. Tampilan Implementasi syntax ?

18
3.8. Deteksi Halaman web gagal dengan pencarian menggunakan syntax (-allpage)
(Validasi)
Dibawah ini merupakan pencarian yang gagal dikarenakan tidak
adanya halaman pada webnya, kesalahan memasukkan alamat web, web

Gambar 3.11. Tampilan Validasi Alamat Web


tidak ditemukan oleh server, atau karena tidak adanya koneksi internet.
Kejadian ini dapat terjadi pula pada syntax lainnya tergantung pada kasus
yang diterima.
3.9. Kesalahan dalam memasukkan syntax (Validasi)
Jika User memasukkan syntax yang salah, maka akan ada notifikasi
dimana parameter tersebut tidak ditemukan dan aka nada panduan berupa
format yang benar yang semestinya dimasukkan pada cmd.

Gambar 3.12. Tampilan Validasi Kesalahan Syntax

19

Anda mungkin juga menyukai