• Tidak ada hasil yang ditemukan

Biltek Vol. 5, No. 021 Tahun 2015 Sekolah Tinggi Teknik Harapan 1

N/A
N/A
Protected

Academic year: 2021

Membagikan "Biltek Vol. 5, No. 021 Tahun 2015 Sekolah Tinggi Teknik Harapan 1"

Copied!
5
0
0

Teks penuh

(1)

PENETRATION TESTING KEAMANAN WEB MENGGUNAKAN

SQL INJECTION

Barkah Akbar Harahap

[1]

, Husni Lubis

[2]

, T. M. Diansyah

[3]

Program Studi Teknik Informatika, Sekolah Tinggi Teknik Harapan Jl. HM Joni No 70 C Medan

E-mail : abaiMU.7@gmail.com[1]

,

husni.lubis82@gmail.com[2]

,

dian_10.22@gmail.com[3]

Abstrak

Pada masa sekarang ini banyak terciptanya berbagai teknologi baru yang mendukung kinerja manusia. Teknologi semakin berkembang pesat dengan berbagai fitur aplikasi website yang memudahkan pengguna untuk melakukan banyak pekerjaan, seperti halnya berbagi informasi, media penyimpanan, dan melakukan transaksi jual-beli yang dapat diakses atau dilakukan kapan saja dimana saja. Semakin berkembangnya teknologi menghasilkan kemudahan bagi banyak pengguna akan tetapi semakin banyaknya tercipta teknologi baru semakin tinggi pula tingkat kejahatan komputer yang terjadi. Keamanan dalam sebuah website menjadi penting, karena data terpusat dapat diambil dan disalahgunakan oleh pihak yang tidak bertanggung jawab. Salah satu cara untuk menguji keamanan website adalah dengan menggunakan teknik SQL Injection. SQL Injection adalah salah satu teknik hacking dimana penyerang memasukkan karakter-karakter khusus pada url sebuah website untuk mengeksploitasi celah keamanan yang muncul disekitar lapisan basis data pada aplikasinya. Celah keamanan

tersebut ditunjukkan pada saat user memasukkan nilai string dan karakter-karakter kontrol lainnya yang ada

dalam intruksi SQL yang tidak di-filter secara benar atau user memasukkan string dengan tipe data tidak sama

yang seharusnya tidak diproses

.

Kata Kunci : Injeksi SQL, Keamanan Web, Pengujian Penetrasi

Abstract

At the present time the creation of many new technologies that support human performance. Technology is growing rapidly with the various features of a website application that allows users to do a lot of work, as well as information sharing, storage, and perform transactions that can be accessed or made anytime anywhere. The continued development of technology generates a lot of convenience to the user but the increasing number of new technologies to create the higher the level of computer crime that happened. Security in a website is important, because centralized data can be retrieved and abused by irresponsible parties. One way to test the security of a website is to use SQL Injection techniques. SQL injection is a hacking technique in which an attacker can enter SQL commands via the url of a website to be executed by the database. The security hole is shown when the user enter a value string and other control characters that exist in the SQL commands that are not filtered properly or the user enter a string value with data type is not the same as that should not be processed.

Keyword : SQL Injection, Web Security, Penetration Testing

1. Latar Belakang

Pada masa sekarang ini banyak terciptanya berbagai teknologi baru yang mendukung kinerja manusia. Teknologi semakin berkembang pesat

dengan berbagai fitur aplikasi website yang

memudahkan pengguna untuk melakukan banyak pekerjaan, seperti halnya berbagi informasi, media penyimpanan, dan melakukan transaksi jual-beli yang dapat diakses atau dilakukan kapan saja dimana saja. Semakin berkembangnya teknologi menghasilkan kemudahan bagi banyak pengguna akan tetapi semakin banyaknya tercipta teknologi baru semakin tinggi pula tingkat kejahatan komputer yang terjadi. Keamanan dalam sebuah website menjadi penting,

karena data terpusat dapat diambil dan

disalahgunakan oleh pihak yang tidak bertanggung jawab. Salah satu cara untuk menguji keamanan

website adalah dengan menggunakan teknik SQL Injection. SQL Injection adalah salah satu teknik serangan yang dapat digunakan oleh penyerang untuk mengeksploitasi aplikasi web, sebagai akibatnya penyerang bisa mendapatkan akses tidak sah ke database atau untuk mengambil informasi langsung dari database.

Adapun tujuan yang ingin dicapai dari penelitian ini adalah:

1.

Mengetahui tentang teknik SQL Injection.

2.

Mengetahui tingkat dan jenis-jenis keamanan

internet.

3.

Melakukan pengujian terhadap aplikasi website

untuk mengetahui dan menganalisa tingkat keamanan dari website yang diancang dan website lain yang ada pada media internet.

(2)

4.

Melakukan penelitian mengenai SQL Injection untuk penerapan dan pencegahannya. Menarik kesimpulan atas ujicoba dan penetration testing keamanan web yang telah dilakukan dengan menggunakan teknik SQL Injection.

2. Metode Penelitian

2.1 Analisis Rancangan Sistem

Analisa terhadap suatu sistem sangat diperlukan untuk mengetahui kegiatan-kegiatan yang sedang berjalan dalam suatu sistem. Tujuan mengetahui kegiatan-kegiatan tersebut adalah untuk memahami dan mengerti jalannya sistem serta hambatan-hambatan yang terdapat dalam sistem tersebut. Fungsi dari analisis sistem adalah untuk mengidentifikasi

kebutuhan sistem, kebutuhan perangkat keras

(hardware), maupun kebutuhan perangkat lunak

(software) sebagai dasar kebutuhan untuk

perancangan sistem. Analisis ini akan

mengidentifikasi permasalahan dan kekurangan yang ada pada sistem yang akan dibangun.

2.2 Analisis Kebutuhan Aplikasi

Dalam melakukan pengujian penetration testing keamanan web menggunakan SQL Injection, perlu mempertimbangkan dan menganalisa kebutuhan perangkat keras (Hardware) dan perangkat lunak (Software) yang akan digunakan agar pengujian tersebut berjalan seperti yang diharapkan. Proses

pengujian penetration testing keamanan web

menggunakan SQL Injection ini membutuhkan perangkat keras dan perangkat lunak sebagai media dan alat yang digunakan untuk melakukan pengujian. 2.3 Perancangan Sistem

Pada proses pengujian SQL Injection yang dilakukan adalah pengujian dilakukan pada aplikasi website sederhana yang sengaja penulis rancang sendiri sebagai kesimpulan sistem kerja website dan tingkat keamanannya dapat diketahui. Aplikasi web tidak terlepas dari penggunaan database sebagai sumber data untuk membuat tampilan web yang dinamis. Penggunaan aplikasi web seringkali tidak dibarengi dengan penggunaan unsur perlindungan terhadap akses kepada database. Lewat penggunaan teks sederhana, seseorang bisa masuk dan login kedalam sistem bahkan tanpa harus memasukan username dan password, tetapi hanya dengan memasukan query SQL kepada aplikasi. Pemaksaan query SQL secara ilegal ini disebut dengan istilah SQL Injection atau SQL Insertion. Karena sebenarnya user tidak memiliki hak untuk melakukan query terhadap database secara langsung, maka dilakukanlah proses pemaksaan agar aplikasi melakukan suatu

query untuk tujuan tertentu, biasanya untuk

menembus bagian administrasi suatu aplikasi web. 2.4 Perancangan Interface Uji Coba

Sebelum melakukan SQL Injection dibutuhkan sebuah website sebagai uji coba untuk penulis. Maka penulis membuat sebuah website sederhana sebagai bahan percobaan, interfaceyang ditampilkan adalah sebuah link dari data artikel yang menampilkan isi artikel. Yaitu sebagai berikut:

Gambar 1. Tampilan Halaman Website Uji Coba Pada halaman diatas merupakan tampilan link data artikel dari website sederhana yang diujikan, berikut ini adalah tampilan data artikel jika link tersebut diklik. Dapat dilihat pada Gambar 2. berikut:

Gambar 2. Tampilan Halaman Artikel 2.5 Perancangan Database

Pada uji coba SQL Injection yang akan dilakukan, penulis membuat sebuah database untuk dapat dilakukan pengujian. Adapun design database yang dibuat adalah sebagai berikut:

a. Tabel User, pada tabel ini memiliki deskripsi dengan nama tabel “user” dan primary key “login”. Yang dapat di lihat pada Tabel 1. berikut ini:

Tabel 1. Desain Tabel User

No Field

Name Type Width Keterangan

1 Login Varchar 20 Username

2 Password Varchar 20 Password

User

b. Tabel Articles, pada tabel ini memiliki deskripsi dengan nama tabel “articles” dan primary key “id_artikel”. Dapat di lihat pada Tabel 2. berikut ini:

Tabel 2. Desain Tabel Articles

No Field

Name Type Width Keterangan

1 Id Int 11 Id Artikel

2 Articles Varchar 200 Isi Artikel

Data Artikel

xxxx

xxxx

xxxx

Isi Artikel

xxxx

xxxx

xxxx

(3)

Kemudian dilakukan pengujian atau penetration testing keamanan kepada website lain yang dipilih secara acak melalui media internet. Dengan mengakses “http://www.google.com” pencarian target menggunakan kata kunci “penjualan kebaya” dengan tujuan mencari website online dengan penjualan kebaya. Maka didapatlah target pengujian dengan

alamat url seperti berikut:

“http://www.grosirkebaya.net/”.

Gambar 3. Tampilan Website Online Yang Menjadi Target Pengujian

Pengujian dilakukan sama halnya pada website sebelumnya dengan memasukan perintah SQL Injection pada url website sehingga menjadi seperti berikut ini: “http://www.grosirkebaya.net/?id=1

Diperoleh hasil respon dari website lain yang menjadi target uji coba tampak seperti Gambar 4. dibawah ini:

Gambar 4. Tampilan Halaman Website Setelah Dilakukan SQL Injection

Dalam pengujian yang ditargetkan pada sebuah aplikasi website lain memberikan hasil yang berbeda, SQL Injection yang diterapkan pada website rancangan penulis sama sekali tidak mendapatkan respon. dengan beberapa kesimpulan keamanan yang dapat dijelaskan sebagai berikut:

1. Aplikasi website tidak seluruhnya dapat dengan mudah untuk dilakukan SQL Injection, hal ini

dikarenakan kemanan aplikasi website tersebut

cukup baik.

2. Teknik SQL Injection tidak dapat dijadikan acuan untuk mendapatkan hasil yang diinginkan, tetapi perlu juga memahami pemrograman lain seperti Javacript, HTML dan lainnya. Hal ini dikarenakan teknik SQL Injection hanya dapat diproses pada

sintak SQL pada halaman yang memiliki proses

query SQL.

3. Dengan pengembangan bahasa pemrograman PHP begitu juga pemrograman yang lain, teknik SQL

Injection telah diantisipasi dengan didukung

library baru mengikuti versi bahasa pemrograman yang digunakan. Seperti otomatisasi pendeteksi karakter “/” atau karakter “=” dan lainnya. Sehingga teknik SQL Injection tidak dapat berjalan.

Pada activity diagram dibawah ini

menggambarkan proses yang berjalan pada web. Proses yang berlangsung terjadi setelah menguji keamanan web tersebut, yang dapat dilihat pada Gambar 5. berikut :

Gambar 5. Activity Diagram

Berdasarkan gambar activity diagram di atas,

dapat dijelaskan bagi pengguna menjalankan aplikasi

dan juga respon sistem yang menghasilkan perintah kemudian diinputkan dengan url.

3. Hasil & Pembahasan

Tampilan Halaman Website Uji Coba

Gambar 6. Tampilan Halaman Website Uji Coba

Buka Website

Pelaku Website Database

Lanjutkan

Insert Sql Injection Eksekusi Sql Respon Request

Hasil Respon Lanjutkan Sql Injection Tidak Menampilkan Halaman

(4)

Tampilan Halaman Isi Artikel

Gambar 7. Tampilan Halaman Isi Artikel Tampilan Respon SQL Injection Tahap Pertama

Gambar 8. Tampilan Respon SQL Injection Tahap Pertama

Tampilan Respon SQL Injection Informasi Server

Gambar 9.

Respon SQL Injection Informasi

Server

Tampilan Respon SQL Injection Informasi Isi Tabel

Gambar 10. Respon SQL Injection Informasi Isi Tabel

Respon SQL Injection Informasi Field

Gambar 11. Respon SQL Injection Informasi Field

Respon SQL Injection Informasi Isi Akses Login

Gambar 12. Respon SQL Injection Informasi Isi Akses Login

Respon SQL Injection Informasi Isi Seluruh Data

Gambar 13. Respon SQL Injection Informasi Isi Seluruh Data

4. Kesimpulan dan Saran

Kesimpulan

Dari pembahasan yang telah penulis uraikan pada BAB sebelumnya, penulis mengambilkan kesimpulan antara lain sebagai berikut :

1. Meskipun tergolong teknik lama, tetapi

penggunaan SQL Injection untuk mendapatkan hak akses administrator terhadap suatu aplikasi website masih populer. Hal ini dikarenakan tidak sedikit aplikasi website yang membiarkan karakter-karakter asing diinputkan kedalam query sehingga menghasilkan lubang atau celah keamanan. Salah satu cara pengamanan aplikasi website yang bisa dilakukan adalah dengan

menambahkan kode, dengan begitu bisa

dilakukan proteksi keamanan terhadap aplikasi website yang dirancang sehingga memperkecil resiko kerusakan pada aplikasi karena ulah penyusup yang menggunakan teknik SQL Injection.

2. Injeksi SQL dapat dengan mudah diatasi dalam

kebanyakan bahasa pemrograman yang

menargetkan aplikasi web atau menawarkan fungsi. Misalnya dalam DBI di Perl, metode DBI::quote meloloskan karakter khusus. Dan pada masa sekarang ini tidak sedikit juga aplikasi

website yang sudah menerapkan tingkat

keamanan website yang cukup tinggi sehingga teknik SQL Injection yang dilakukan tidak mendapatkan respon.

Saran

Penetration testing keamanan web menggunakan SQL Injection yang telah penulis lakukan masih jauh dari kesempurnaan. Hal ini disebabkan karena keterbatasan waktu dan pengetahuan penulis dalam melakukannya. Adapun saran dari penulis untuk penelitian dan pengembangan selanjutnya adalah:

ISI TABE

(5)

1. Bagi pengguna website yang ingin mendaftarkan hosting, terlebih dahulu memeriksa ataupun menganalisa hosting yang akan disewa, sebab dari penyewaan hosting tersebut juga dapat terjadi pembobolan ataupun perusakan terhadap website.

2. Dalam membangun sebuah website terlebih dahulu memastikan tidak terladapat lubang pada script yang menjadi celah untuk dirusak ataupun dibobol website tersebut.Perlu ditambahkan fitur offline mode (modus offline), sehingga dalam keadaan koneksi internet buruk ataupun putus, user masih dapat memberikan persetujuan. Persetujuan tersebut nantinya akan diproses ke ERP Server pada saat smartphone dalam keadaan online (terjangkau internet).

Daftar Pustaka

[1] Ariyus, D. 2008. PENGANTAR ILMU

KRIPTOGRAFI Teori Analisa dan

Implementasi. Yogyakarta. ANDI

[2] Dharmawan, E. A. dan Sarosa, M. 2013. Perlindungan Web Pada Login Sistem

Menggunakan Algoritma Rijndael. Jurnal EECCIS Vol. 7, No. 1

[3] Widhiarso, Yoni. 2013. Rancang Bangun Media Promosi dan Pemesanan Online Bagas Motor

Berbasis Web. Jurnal Seminar Riset

Unggulan Nasional Informatika dan

Komputer FTI UNSA 2013

[4] Winasis, T. A. 2001. Trik Membangun Situs

Web Gratis. Jakarta. PT Elex Media

Komputindo

[5] Anggreana, J. K. 2013. Simulasi Keamanan Pada Aplikasi Web Dengan Web Application

Firewall. Jurnal Ilmiah Komputer dan

Gambar

Gambar 4. Tampilan Halaman Website Setelah  Dilakukan SQL Injection
Gambar 8. Tampilan Respon SQL Injection Tahap  Pertama

Referensi

Dokumen terkait

Metode mengajar merupakan suatu cara yang digunakan guru dalam membelajarkan siswa, sedangkan pengalaman belajar ( Learning Experiences ) yang diharapkan adalah terjadi

Dengan demikian dapat disimpulkan bahwa program “Say No To Bullying” efektif untuk meningkatkan pemahaman siswa SMP tentang bullying. "The Effectiveness of Say No To

Hasil dari Penelitian Variabel Reputasi memiliki rata-rata TCR 80,00% dan TCR tertinggi didapatkan pada indikator Credibility dengan nilai TCR sebesar 80,40%,

subsurface flow dapat digunakan sebagai sistem pengolah limbah cair di Foodcourt Baseball Unesa.. Sistem ini juga dapat diterapkan untuk mengolah limbah rumah susun dan perumahan

Kita hidup di dunia ini tidak lama dan tiap hari umur kita berkurang  kita mati tidak ada yang menemani dan tidak ada yang dibawa, hanya amal baik dan kain kafan

Dalam buku Our Common Future (buku yang pertama kali memunculkan konsep pembangunan berkelanjutan atau Sustainable Development), telah diingatkan tentang masalah perkotaan

pemahaman tentang diri sendiri, dimana klien diharapkan untuk lebih mampu mengetahui letak kekurangan dan kelebihan dalam diri sendiri. Pemahaman diri adalah suatu

* Mirip cara 2b, tapi tanpa fiksasi kepala : anak duduk/berdiri/berbaring, pandangan dihalangi wajah terapis ( untuk melakukan kontak mata) + instruksi “lihat”. * Anak