rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java

dokumen-dokumen yang mirip
Mengenal Pemrograman Web Dengan JSP

Membuat aplikasi sederhana menggunakan java NetBeans dan cara menginstal java NetBeans

TUGAS KELOMPOK SECURITY COMPUTER TOOL HACKING SQL INJECTION

BAB III LANDASAN TEORI. Pengertian sistem menurut Jogianto (2005 : 2) mengemukakan

Review C/C++ & Intro to Java. Pemrograman Berorientasi Obyek IT209

Pemrograman Berbasis Objek. Pengenalan Java. Entin Martiana. Politeknik Elektronika Negeri Surabaya

LAPORAN 2 PEMOGRAMAN JAVA III APPLICATION PROGRAMMING INTERFACE

LAPORAN 4 PEMOGRAMAN JAVA III APPLICATION PROGRAMMING INTERFACE

Pencari Celah Keamanan pada Aplikasi Web

PROTECTING WEBSITES FROM COMMON ATTACKS

BAB 2 TINJAUAN PUSTAKA. memerlukan Jaringan Internet. Namun Tentu saja filenya berada di komputer

MENGENAL JAVA APPLET. Wiranti Sri Utami. Abstrak. Pendahuluan.

WEB BROWSER SECURITY. Indra Priyandono

Perancangan Website Ujian. Teknik Elektro UNDIP Berbasis HTML

BAB II KAJIAN PUSTAKA. Menurut Hendrayudi (2008:143), Aplikasi adalah kumpulan perintah

Analisis Penanganan SQL Injection pada Basis Data MySQL dengan Framework Code Igniter dan PHP

MK. Pemrograman Berorientasi Objek PENGENALAN JAVA KARMILASARI

PERANCANGAN DAN IMPLEMENTASI SISTEM INFORMASI SEKOLAH (STUDI KASUS SMP N 2 PATIKRAJA BANYUMAS)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

BAB I PERSYARATAN PRODUK

SISTEM MONITORING PERALATAN BENGKEL MENGGUNAKAN METODE WATERFALL DENGAN MVC CODEIGNITER. Andriyani Siyoperman Gea ABSTRAK

Mahasiswa memahami Pengertian, fungsi, aplikasi untuk menjalankan JavaScript, cara menjalankan kode, cara memasukkan kode JavaScript ke dalam HTML

Makalah Tentang Konten Manajemen Sistem Untuk Ujian Kompetensi Online

BAB 1 PENDAHULUAN. berkomunikasi. Hal tersebut dapat dilakukan dengan hanya mengetik alamat ip address

BAB II TINJAUAN PUSTAKA. Website merupakan kumpulan dari halaman halaman yang berhubungan dengan

BAB III LANDASAN TEORI

BAB I PENDAHULUAN. teknologi berbasis komputer, walaupun perusahaan sudah menggunakan

No HP :

Pemrograman Berbasis Objek. Pengenalan Java. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya

ADITYA WARDANA

Perancangan Web Application Honeypot untuk Menggali Informasi Peretas

BAB 2 LANDASAN TEORI. Bab ini akan menjelaskan masalah-masalah teoritis yang berkaitan dalam pembuatan

BAB II LANDASAN TEORI

Bab 4 Hasil dan Pembahasan

HTML 5. Geolocation Web SQL Database, media penyimpanan database lokal

BAB I PENDAHULUAN I.1 Latar Belakang

PEMROGRAMAN BERORIENTASI OBJEK

BAB II LANDASAN TEORI Sistem Informasi Pembelian dan Penjualan. terlebih dahulu akan menjelaskan pengertian masing-masing dari kata sebagai

Hacking Website With SQL Injection

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI. produk itu baik atau rusak ataupun untuk penentuan apakah suatu lot dapat diterima

Xcode Intensif Training. Advanced ethical web. hacking & security

BAB 2 LANDASAN TEORI. 2.1 Sekilas Tentang Sistem Ujian Konevensional

Teori Algoritma. 1Universitas Gunadarma

BAB 2 TINJAUAN TEORI. 2.1 Konsep Dasar Data, Informasi dan Sistem Informasi

BAB 2 LANDASAN TEORI

Web Programming (WP) m telp : Rolly Yesputra

IMPLEMENTASI DAN PENGUJIAN

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

Riska Kurnianto Abdullah NRP :

Keamanan Data di dalam Cloud Storage

BAB 2 LANDASAN TEORI. merupakan beberapa komputer yang terhubung satu sama lain dengan memakai kabel

BAB II. KAJIAN PUSTAKA

PERANCANGAN PERLINDUNGAN PERANGKAT LUNAK SEBAGAI ASET INFORMASI TERHADAP MALICIOUS CODE DI FAKULTAS TEKNIK UNIVERITAS PASUNDAN

BAB V IMPLEMENTASI DAN PENGUJIAN. Application Development Tools yang ada, oleh sebab itu aplikasi ini. Professional Development Tools : jcreator, java

Rekayasa Sistem Web. Teguh Wahyono. Fakultas Teknologi Informasi Semester Antara Tahun 2012/2013

Methods of Manual Penetration Testing (Actual Exploit)

Form Mampu membuat form dan dan mengirim data ke halaman lain Pengaturan Validasi dan keamanan form. Sesi 5

Perancangan & Pemprograman WEB

SISTEM INFORMASI PELATIHAN LEMBAGA PENGEMBANGAN DAN PENJAMINAN MUTU PENDIDIKAN UNIVERSITAS DIPONEGORO SEMARANG

BAB II LANDASAN TEORI

BAB 4 IMPLEMENTASI DAN EVALUASI Perangkat keras yang di butuhkan. optimal pada server dan client sebagai berikut.

SMART LOGIN PADASITUSWEB MENGGUNAKANQR-CODE. Masdito Bachtiar Pembimbing 1 : Ary Mazharuddin S., S.Kom., M.Comp.Sc

BAB 2 LANDASAN TEORI. Istilah Komputer (Computer) diambil dari bahasa Latin Computare yang berarti menghitung

BAB 2 LANDASAN TEORI. Kata komputer berasal dari Bahasa inggris yaitu to compute yang artinya menghitung. Bila

Pemrograman Web Teknik Informatika Fakultas Teknologi Industri

BAB III ANALISIS DAN PERANCANGAN

BAB 2 LANDASAN TEORI

Bab 1 Pengenalan Web Server dan Server Side Scripting

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. Sekolah Menengah Atas (SMA) Negeri 1 Medan merupakan instansi sekolah menengah atas

BAB 2 LANDASAN TEORI. Internet (Interconnection Networking) adalah sebuah jaringan komputer yang

WEBSITE PEMILIHAN CALON KETUA HIMPUNAN JURUSAN SISTEM KOMPUTER UNIVERSITAS KRISTEN MARANATHA. Angga Indrajaya /

Pada akhir pembahasan, peserta diharapkan dapat :

E-trik Ajax. Database MySQL. Dedi Alnas

Pemrograman Web (Pertemuan 2) By. Rita Wiryasaputra

Pengenalan Web Server dan Server Side Scripting

BAB II LANDASAN TEORI. di jaman sekarang, namun apakah Anda mengetahui sejarah nya itu?. Mungkin,

PENGERTIAN PHP DAN MYSQL

TUTORIAL ANTI INJECTION 1. SCRIPT CODE LOGIN ANTI SQL INJECTION. Materi asli dari Masinosinaga baca dibawah ini:

Bab 1. Pengenalan JSP POKOK BAHASAN: TUJUAN BELAJAR: 1.1 Dasar JSP

Nama : FEPILIANA Nim : TUGAS 05 KEAMANAN JARINGAN KOMPUTER ACTUAL EXPLOIT

Keamanan Web Server. Pertemuan XI WEB HACKING

Ahmad Muammar W. K.

Pengantar Pemrograman dengan Bahasa Java

Pemrograman dengan Java

Gambar Halaman File Download (buat baru/edit) (Admin) Gambar di atas merupakan halaman file download untuk admin.

IMPLEMENTASI DAN PENGUJIAN

BAB 2 LANDASAN TEORI. dengan yang lain, yang berfungsi bersama sama untuk mencapai tujuan tertentu.

Pertemuan XI Database Connectivity Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT.

BAB II LANDASAN TEORI. suatu maksud tertentu adalah bagian dari suatu sistem, yang mana sistem

BAB I PENDAHULUAN. internet yang sangat membantu dalam kemudahan serta kecepatan pengiriman,

BAB 2 LANDASAN TEORI

BABI II DASAR TEORI DAN TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI. Kata sistem berasal dari bahasa Yunani yaitu Systema yang mengandung arti kesatuan

SISTEM PEMANTAUAN DISTRIBUSI PEMBAYARAN PARKIR MELALUI INTERNET

Content Injection at Accounts Page that could Result Reflected Cross Site Scripting

PENGENALAN BAHASA PEMROGRAMAN JAVA

Transkripsi:

BAB II TINJAUAN PUSTAKA 2.1 JAVA Java merupakan sebuah bahasa pemrograman komputer berbasiskan kepada Object Oriented Programming. Java diciptakan setelah C++ dan didesain sedemikian sehingga ukurannya kecil, sederhana, dan portable (dapat dipindah-pindahkan di antara bermacam platform dan sistem operasi) [3]. Java pertama kali diluncurkan pada tahun 1995 sebagai bahasa pemrograman umum dengan kelebihan bisa dijalankan di web browser sebagai applet. Langkah pertama yang diambil oleh Sun Microsystem adalah dengan membuat JVM(Java Virtual Machine) yang kemudian diimplementasikan dalam bentuk JRE(Java Runtime Environment). JVM adalah lingkungan tempat eksekusi program java berlangsung dimana para objek saling berinteraksi satu dengan lainnya. Virtual machine inilah yang menyebabkan Java mempunyai kemampuan penanganan memori yang lebih baik, keamanan yang lebih tinggi serta portabilitas yang besar. Untuk lebih meningkatkan produktivitas pengembang perangkat lunak maka diluncurkan SDK(Standard Development Kit) yang berisi kakas dan API untuk membuat aplikasi berbasis Java. Java memiliki beberapa kelebihan yaitu : Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebabnya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut. 7

OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa pemrograman berbasis objek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara komputer sekalipun. Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi [4]. 2.2 SQL Injection SQL Injection adalah salah satu jenis penyerangan yang mengijinkan pengguna tidak sah(penyerang) untuk mengakses database server atau tindakan menyisipkan perintah SQL melalui URL atau isian form yang digunakan untuk menyusun perintah SQL seperti login form. Yang menggunakan teknik, penyerang mencoba memasukkan query (melalui field atau URL) yang akan menyebabkan database server men-generate query SQL yang tidak valid. Pada kenyataan nya,sql injection terbukti merupakan salah satu teknik terbaik yang sering melumpuhkan sasarannya. Begitu penyerang berhasil menguasai kendali database server,ia bisa melakukan apa saja,seperti memodifikasi atau bahkan menghapus semua data yang ada. bagaimana pun juga,ini bisa dicegah jika kode program anda melakukan validasi yang baik. Sebenarnya apa bila di teliti,teknik SQL injection sangat sederhana sekali. Akan tetapi justru yang sering diabaikan oleh para programer,entah itu tidak tahu atau lupa [5]. 8

Biasanya, serangan SQL injection yang dilancarkan ke sebuah situs korban melalui URL berparameter, misalkan seperti ini: http://situskorban/artikel.php?id=10 URL di atas memiliki parameter id dan biasanya diikuti dengan angka tertentu. Angka ini menunjukkan nomor id dari artikel yang sedang tampil. dengan menambahkan beberapa query SQL di belakang parameter tersebut, seorang hacker mampu mengakses database yang digunakan oleh situs tersebut. Berikut ini salah satu contoh query yang diinjectkan melalui URL berparameter : http://situskorban/artikel.php?id=10 union all select 1,concat(user,0x3a,pass,0x3a,email) from users -- Seorang hacker dalam melancarkan aksinya, biasanya butuh beberapa kali submit URL dan query sebelum akhirnya mendapatkan targetnya.[6] Berikut adalah pengecekan apakah suatu web bisa di Attack apa tidak dengan teknik sql injection. Semisal web target sebagai berikut : http://www.site.com/news.php?id=5 Kemudian pada site tersebut ditambahkan tanda (petik satu) di akhir url atau nilai parameternya, maka hasilnya sebagai berikut : http://www.site.com/news.php?id=5 Jika terlihat error seperti You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right bla..bla.. atau error yang sejenis, ini menunjukkan web tersebut bisa diserang menggunakan teknik SQL injection. 9

untuk menemukan banyak kolom dapat menggunakan perintah ORDER BY. Dengan cara menambah angka setelah BY sampai didapatkan pesan error. Misal : http://www.site.com/news.php?id=5 order by 1/* < tidak ada error http://www.site.com/news.php?id=5 order by 2/* < tidak ada error http://www.site.com/news.php?id=5 order by 3/* < tidak ada error http://www.site.com/news.php?id=5 order by 4/* < error maka akan ada pesan error Unknwon column 4 in order clause atau pesan error yang mirip seperti itu. Hal itu dapat diartikan database memiliki 3 kolom karena sewaktu kita mencoba menebak kolom ke 4 ternyata hasilnya error itu tandanya kolom ke 4 tidak ada. Dengan UNION kita menggabungkan perintah yang lainnya dalam satu perintah (seringnya perintah SELECT. Misal Code: http://www.site.com/news.php?id=5 union select 1,2,3 (kenapa digunakan 1,2,3 itu karena sebelumnya sudah mendapatkan ada 3 kolom hasil dari perintah ORDER BY jika semisal terdapat 4 kolom sehingga jadi 1,2,3,4) jika kita melihat salah satu angka dari tiga angka tadi maka itu tandannya perintah UNION bekerja. Semisal di layar muncul angka 2, maka kita ganti angka dua tersebut dengan perintah @@version atau version() http://www.site.com/news.php?id=5 union all select 1,convert(@@version using latin1),3 jika tidak error maka akan muncul versi dari mysql seperti 4.1.33-log or 5.0.45 atau semacam nya. [7] Dari percobaan-percaobaan tersebut dapat diketahui suatu web memiliki kelemahan SQL Injection atau tidak. 10

2.3 XSS (Cross Site Scripting) XSS menjadi salah satu isu keamanan aplikasi web yang sedang berkembang. XSS atau yang sering di sebut sebagai Cross-Site Scripting merupakan salah satu jenis serangan web yang dilakukan dengan memanfaatkan kelemahan pada suatu aplikasi web sehingga memungkinkan hacker untuk menginjeksikan suatu tag HTML ataupun Client Side Script pada URL web tersebut dikarenakan adanya variabel yang tidak disanitasi dengan baik. serangan web sederhana ini banyak diremehkan oleh pengguna. Banyak orang menganggapnya sebagai serangan yang tidak berbahaya. Padahal para hacker dapat memanfaatkannya untuk mencuri informasi-informasi sensitif dari pengguna[8]. Semenjak ditemukan dan dipublikasikan ke mailing list Bugtraq (securityfocus.com) pada pertengahan tahun 2002, ratusan situs telah menjadi korban seperti hotmail,yahoo,ebay serta software seperti IIS dan apache. XSS merupakan kelemahan aplikasi web yang memanfaatkan input form seperti SQL Injection. Jika pada SQL Injection, target penyerangan adalah database server maka target XSS adalah client atau browser client [9]. Kerentanan aplikasi web terhadap celah ini mampu membuat resiko seperti pencurian account pengguna. Hal ini cukup berbahaya karena privasi seseorang dapat terganggu. Contoh potongan kode dari suatu aplikasi web yang tidak tersanitasi dengan baik dapat digambarkan seperti berikut ini : $page = $_GET['id']; echo "Anda berada di halaman ". $page. " Artikel dan Trik"; misalnya nama halaman yang mengandung script diatas ialah spyro.php, maka halaman tersebut dapat diinjeksi dengan serangan sederhana : http://korban.net/spyro.php?id=<h1>hello ZONERS</H1> 11

maka serangan tersebut akan dieksekusi dan hasilnya adalah sebagai berikut : Anda berada di halaman HELLO ZONERS Artikel dan Trik Dalam melakukan XSS, dapat menginjeksikan tag HTML, Java Script atau Script Client Side lainnya. Hasil injeksi yang dilakukan memiliki 2 sifat tergantung dimana injeksi serangan XSS tersebut dilakukan. Jika injeksi XSS dilakukan pada suatu variabel yang hanya melewatkan parameter tanpa menyimpannya di database, maka hasilnya hanya bersifat temporary (sementara). Akan tetapi apabila ditemukan kelemahan ini pada Guest Book, Shout Book, Forum, Blog dan yang sejenisnya dan dilakukan serangan XSS, maka hasil serangan tersebut akan bersifat permanen karena script yang di injeksikan tersimpan didalam database. 12