• Tidak ada hasil yang ditemukan

Vol. 2, No. 2, Tahun Jurnal Aksara Komputer Terapan Politeknik Caltex Riau

N/A
N/A
Protected

Academic year: 2021

Membagikan "Vol. 2, No. 2, Tahun Jurnal Aksara Komputer Terapan Politeknik Caltex Riau"

Copied!
6
0
0

Teks penuh

(1)

Vol. 2, No. 2, Tahun 2013 203

Modul Pembelajaran Uji Keamanan Web Berbasis Php Dan Python Django Dengan Menggunakan Metode Sql Injection

Tika Hermawati, Rahmat Suhatman, Ibnu Surya

Jurnal Aksara Komputer Terapan

Politeknik Caltex Riau

Website : https://jurnal.pcr.ac.id/index.php/jakt/about

Email : [email protected]

Modul Pembelajaran Uji Keamanan Web Berbasis

PHP Dan Python Django Dengan Menggunakan

Metode Sql Injection

Tika Hermawati

1

, Rahmat Suhatman

2

, Ibnu Surya

3

1Program Studi Teknik Informatika, Politeknik Caltex Riau, email: [email protected] 2

Program Studi Teknik Informatika, Politeknik Caltex Riau, email: [email protected]

3

Program Studi Teknik Informatika, Politeknik Caltex Riau, email: [email protected] Abstrak

Pada era yang sudah maju sekarang banyak sekali segala jenis modul-modul pembelajaran yang dapat dimanfaatkan. Modul pembelajaran itu sendiri adalah suatu paket belajar mandiri atau alat atau sarana pembelajaran yang berisi materi, metode, batasan-batasan, dan cara mengevaluasi yang dirancang secara sistematis dan menarik untuk mencapai kompetensi yang diharapkan dan dapat digunakan secara mandiri. Modul pembelajaran ini dapat dimanfaatkan oleh semua orang yang ingin belajar tentang pengujian suatu websiteyang dibangun dengan menggunakan bahasa pemrograman PHP5untuk security on dan off serta Python Django.Untuk pengujian keamanannya dilakukan attacker yang memanfaatkan metode SQL Injection dengan Error Based SQL Injection, Union Based SQL Injection dan Blind SQL Injection.

Kata kunci: Blind SQL Injection. Error Based, PHP ,SQL Injection,Union Based SQL Injection

Abstract

In this era of advanced knowledge lots of all kinds of learning modules that can be utilized. Learning module itself is a self-study package or tool or means of learning containing materials, methods, limitations, and how to evaluate systematically designed and appealing to attain the expected competencies and can be used independently. This learning module can be used by everyone who wants to learn about testing a website is built using PHP5 programming language for security on and off as well as the Python Django. For safety testing done by attackers who exploit SQL Injection method with Error Based SQL Injection, Union Based SQL Injection and Blind SQL Injection.

(2)

Vol. 2, No. 2, Tahun 2013 204

Modul Pembelajaran Uji Keamanan Web Berbasis Php Dan Python Django Dengan Menggunakan Metode Sql Injection

Tika Hermawati, Rahmat Suhatman, Ibnu Surya

1. Pendahuluan

Website adalah kumpulan halaman yang menampilkan informasi data teks, data gambar diam atau gerak, dan masih banyak lainya baik yang bersifat statis maupun dinamis yang membentuk satu rangkaian bangunan yang saling terkait. Sebuah website dapat dibuat dengan banyak jenis bahasa pemrograman, akan tetapi pada era sekarang banyak yang membuat website dengan bahasa pemrograman PHP versi 5 dan Phyton Django.

Semua website yang dibuat belum tentu aman dari serangan para attacker, terutama pada era sekarang para attacker banyak menggunakan SQL Injection untuk mengeksploitasi website itu sendiri. Pengertian dari SQL injection itu sendiri adalah teknik mengeksploitasi sebuah website memakai data yang disisipkan dalam query SQL dengan cara memasukkan query SQL atau perintah (command) sebagai input yang dimungkinkan melalui halaman website tersebut. Disini para attacker menggunakan SQL Injection karena aksi SQL Injection ini tidak mengisyaratkan banyak hal, tidak perlu ping, menggunakan port tertentu dan tidak terpengaruh oleh firewall.

Atas permasalahan tersebut maka dibuat sebuah modul pembelajaran mengenai uji keamanan web berbasis PHP versi 5 dan Phyton Django dengan metode Sql Injection. Modul pembelajaran disini sangat berguna bagi semua orang yang ingin mempelajari tentang keamanan webite. Modul pembelajaran disini menggunakan bahasa pemrograman PHP versi 5 dan Phyton Django. Didalam modul pembelajaran ini berisi informasi dan cara mengamankan website yang dibuat dari para attacker terutama attacker yang menggunakan beberapa jenis dari Sql Injection, yaitu Error Based SQL Injection, Union Based SQL Injection dan Blind SQL Injection.

1.1 Perumusan Masalah

Berdasarkan latar belakang yang diuraikan diatas dapat dirumuskan

permasalahan proyek akhir ini yaitu bagaimana membuat modul pembelajaran dan bagaimana menguji keamanan web yang dibuat menggunakan dua bahasa pemrograman yaitu PHP versi 5 dan Phyton Django dari attacker yang menggunakan metode serangan Sql Injection yang menggunakan jenis-jenis yang ada yaitu jenis Error Based SQL Injection, Union Based SQL Injection dan Blind Based SQL Injection dengan memanfaatkan metode-metode didalamnya.

1.2 Tujuan dan Manfaat

Tujuan dari proyek akhir ini adalah : 1. Membuat modul pembelajaran

yang dapat dimanfaatkan oleh semua orang.

1. Menguji tingkat keamanan dari website PHP 5 security On dan Off serta Phyton Django.

2. Mengetahui bahasa pemrograman yang aman untuk digunakan. Proyek akhir ini diharapkan dapat bermanfaat untuk :

1. Memberikan pengetahuan terhadap semua orang melalui modul

pembelajaran yang berisi informasi bagaimana cara mengamankan website yang dibuat dari serangan attacker yang memanfaatkan SQL Injection.

2. Mengetahui bahasa pemrograman untuk membuat website agar aman dari serangan SQL Injection. 3. Mengetahui kekurangan dan

kelebihan atau celah yang banyak dimanfaatkan oleh attacker dari bahasa pemrograman yang dibuat.

2. Landasan Teori

2.1 Perbandingan Penelitian

Pada sebelumnya telah dilakukan penelitian oleh Meita Setiasih, Deborah Estefanus, dan Michael Andinata pada tahun 2012 mengenai “Perancangan Keamanan Halaman Web Berbasis Platform PHP Terhadap Serangan Sql Injection”, Binus university, jakarta, DKI jakarta, indonesia membahas tentang

(3)

Vol. 2, No. 2, Tahun 2013 205

Modul Pembelajaran Uji Keamanan Web Berbasis Php Dan Python Django Dengan Menggunakan Metode Sql Injection

Tika Hermawati, Rahmat Suhatman, Ibnu Surya metode SQL Injection,dapat di implementasi dengan baik dan memberikan keamanan bagi webberbasis PHP versi 5, sehingga memperkecil kemungkinan untuk ditembus oleh pihak luar yang tidak memiliki wewenang dalam mengambil alih hak akses web dengan metode SQL Injection.

Pada proyek akhir ini, dibuat suatu modul pembelajaran mengenai kemanan website berbasis PHP 5 dan Python Django dengan metode pengujiannya menggunakan metode SQL Injection dengan memanfaatkan Error Based SQL Injection Union Based SQL Injection dan Blind Based SQL Injection yang ada pada SQL Injection itu sendiri. Dengan metode SQL Injection memberikan pengetahuan kepada semua orang tentang bagaimana memberikan keamanan terhadap sebuah website dari serangan attacker.

Tabel 1 perbandingan penelitian terdahulu dan penelitian sekarang

Berdasarkan hasil analisis, perancangan, pengujian, implementasi, dan evaluasi, maka dapat diambil beberapa kesimpulan, yaitu:

1. Dapat melakukan pencegahan terhadap serangan SQL Injection pada web berbasis PHP versi 5 dengan database menggunakan MySql.

2. Penggunaan dan konfigurasi htaccess yang tersedia dari web hostingdalam mencegah terjadinya serangan SQL Injection.

3. Menutupi celah kelemahan PHP dalam segi coding pemrograman. 4. Penggunaan dan konfigurasi

php.ini pada web serverlokal. 2.2 Modul Pembelajaran

Modul merupakan salah satu bentuk bahan ajar yang dikemas secara utuh dan sistematis, didalamnya memuat seperangkat pengalaman belajar yang terencana dan didesain untuk membantu semua orang menguasai tujuan belajar yang spesifik. Adapun penjelasan mengenai

modul pembelajran itu sendiri adalah suatu alat atau sarana pembelajaran yang berisi materi, metode, batasan-batasan, dan cara mengevaluasi yang dirancang secara sistematis dan menarik untuk mencapai kompetensi yang diharapkan dan dapat digunakan secara mandiri.Modul disusun sesuai dengan kebutuhan belajar pada mata kuliah tertentu untuk keperluan proses pembelajaran tertentu, sebuah kompetensi atau sub kompetensi dikemas dalam satu modul secara utuh.

2.3 Protocol Hypertext (PHP)

PHP adalah bahasa pemrogaman web atau scripting language yang menyatu dengan HTML dan dijalankan pada server side. Artinya semua sintaks yang diberikan akan sepenuhnya dijalankan pada server sedangkan yang dikirim ke browser hanya hasilnya saja.

PHP 5 merupakan kelanjutan evolusi yang berjalan. Walaupun pada PHP 4 sudah banyak library yang ditambahkan, PHP 5 menawarkan peningkatan dari fungsionalitas dan penambahan beberapa fitur antara lain :

1. peningkatan dari kemampuan pemrograman berorientasi objek

2. Excetion handling, yang menstandarisasi logika atas pemberitahuan kesalahan pemrograman.

3. Peningkatan terhadap penanganan string.

4. Peningkatan dukungan terhadap XML dan Web Service yang menggunakan libxml2.

5. PHP versi 5 dapat membuat file swf dan applet java.

2.4 Register Global

Register Globals adalah adalah merupakan salah satu pengaturan yang berada di dalam file php.ini yang bertugas untuk mengatur apakah variabel-variabel EGCPS akan didaftarkan sebagai variabel global atau tidak. Dalam pengaturan defaultnya register globals adalah on tetapi ada juga di beberapa webserver seperti xampp defaultnya off. Berikut ini script

(4)

Vol. 2, No. 2, Tahun 2013 206

Modul Pembelajaran Uji Keamanan Web Berbasis Php Dan Python Django Dengan Menggunakan Metode Sql Injection

Tika Hermawati, Rahmat Suhatman, Ibnu Surya untuk mengetahui status register globals pada website yang telah dibuat:

<?php $reglob = ini_get('register_gl obals'); if($reglob == 1){ echo "register_globals ON"; } else { echo "register_globals OFF"; } ?>

tabel 2 Script Register Global

Jika register globals di set ON, maka akan muncul tulisan "register_globals ON", dan jika register global di set OFF, maka akan muncul tulisan “register_globals OFF”. Untuk mengaktifkan atau mematikannya, yaitu dengan menghilangkan tanda titik koma, berikut ini adalah contohnya :

Ketika register globals ON, maka register globals akan memasukkan variabel ke script yang telah dibuat (seperti pada permintaan melalui form html). Hal ini sesuai dengan fakta bahawa PHP tidak membutuhkan inisialisasi dari variable, dan itu berarti akan sangat mudah untuk menulis koding yang tidak terjamin keamanannya. Perbedaan dari register globals on dan off yaitu menyebutkan nama variabelnya yang berasal dari get, post, cookie, session, dan server secara langsung.

2.5 Python Django

Phyton Django awalnya ditulis oleh Adrian Holovaty dan Simon Willison didunia online. Namun sejak dirilis open source Django, perusahaan dan organisasi diseluruh dunia telah mengambilnya untuk digunakan dalam proyek- proyek besar maupun kecil. Phyton Django itu sendiri adalah bahasa pemrograman interpreter, karena Phyton Django dieksekusi dengan sebuah interpreter. Bahasa pemrograman Phyton Django juga merupakan bahasa pemrograman yang mudah dibaca dan terstruktur, hal ini karena digunakannya sistem identasi. Yaitu memisahkan blok-blok program susunan identasi. Didalam Phyton Django juga terdapat fasilitas pembuatan tipe data variabel secara dinamik dan struktur bahasa dari Phyton Django yang memudahkan programmer.

2.6 SQL Injection

SQL Injection merupakan teknik untuk mengeksploitasi sebuah aplikasi website yang memakai data yang diberikan atau disisipkan dalam query SQL. Cara kerjanya dengan memasukkan query SQL atau perintah (Command) sebagai input yang dimungkinkan melalui halaman website. Dengan demikian, SQL Injection dapat pula dikatakan sebagai suatu kegiatan yang menipu query dari database dengan memberikan suntikan atau menyisipkan kode SQL Injection kedalam kode yang asli.

Pada dasarnya ada tiga jenis SQL Injection, yaitu:

1. Error Based SQL Injection

Dalam aksinya akan memberikan sebuah perintah ke database sehingga menampilkan pesan error. Dari pesan error tersebut dapat diperoleh informasi yang bisa dimanfaatkan. Pada aksi Error Based SQL Injection dapat dikelompokkan menjadi dua metode yaitu GET method yang digunakan untuk memasukkan perintah SQL Injection melalui URL sebuah wesbite pada address bar, sehingga metode ini dikenal juga dengan URL Based SQL Injection. Yang kedua yaitu POST method, metode ini berasal dari variable yang ada pada form, cara untuk

(5)

Vol. 2, No. 2, Tahun 2013 207

Modul Pembelajaran Uji Keamanan Web Berbasis Php Dan Python Django Dengan Menggunakan Metode Sql Injection

Tika Hermawati, Rahmat Suhatman, Ibnu Surya mengidentifikasinya dengan memberikan karakter ‘ atau karakter ascii yang bisa menghasilkan error. 2. Union Based SQL Injection

Adalah suatu metode SQL Injection perintah UNION untuk menggabungkan hasil dari dua data atau lebih perintah SELECT menjadi hasil tunggal.

3. Blind SQL Injection

Jenis ini tidak menampilkan pesan error dan tidak menampilkan data atau informasi yang ada, terkadang sedikit sulit untuk melakukan eksploitasi untuk jenis Blind SQL Injection. Hal ini karena prosesnya dengan membrikan pertanyaan pada database berupa kondisi TRUE/FALSE dan apakahn ditampilkan benar atau tidak.

3. Metodologi Penelitian 3.1 Diagram Blok Diagram

Gambar 1 Diagram Blok Sistem

3.2 Skenario Pengguna Modul pembelajaran

Gambar 1 Skenario penggunaan

modul pembelajaran

Dari gambar diatas menjelaskan penggunaan dari modul pembelajaran

berupa CD berisikan file pdf yang berisi penjelasan mengenai PHP5 dan Phyton Django, langkah pengujian menggunakan SQL Injection, hasil pengujian, langkah mempatching SQL Injection, kesimpulan dan saran. Sehingga user dapat membaca, memahami serta mempraktekkannya. 3.3 Skenario Penyerangan dan

attacker

Gambar 1 Skenario Penyerangan Dari

Attacker

Dari gambar diatas menjelaskan penyerangan dari attacker. Dimana attacker disini sebagai penyerang dari website yang telah dibuat dengan menggunakan metode SQL Injection yaitu dengan memanfaatkan jenis-jenisnya, dengan menggunakan jenis dari Error Based SQL Injection, Union Based SQL Injeection dan Blind SQL Injection yang apabila security dari server website dalam kondisi On dan Off. Dan kemudian dengan memanfaatkan SQL Injection tersebut menyerang server dari website ke Database, setelah itu attacker pun dapat menguasai server dan merusak isi dari website tersebut dan menampilkan hasil dari serangan attacker.

3.4 Skenario

(6)

Vol. 2, No. 2, Tahun 2013 208

Modul Pembelajaran Uji Keamanan Web Berbasis Php Dan Python Django Dengan Menggunakan Metode Sql Injection

Tika Hermawati, Rahmat Suhatman, Ibnu Surya 4. Hasil dan Pembasan

Tabel 3 Hasil analisa pengujian SQL Injection terhadap web.

Dari keterangan tabel 3 diatas bahwa PHP 5 untuk security Off terdapat celah atau bugs yang dapat di manfaatkan oleh attacker untuk di inject dengan menggunakan SQL Injection. Dan pada PHP 5 untuk security On serta Python Django tidak memiliki celah atau bugs sehingga tidak dapat dimanfaatkan oleh attacker.

5. Kesimpulan dan Saran 5.1 Kesimpulan

Berdasarkan hasil dari pengujian dan analisa yang telah dilakukan pada Uji keamanan web dengan menggunakan SQL Injection maka didapatkan beberapa kesimpulan diantaranya:

1. Modul pembelajaran yang dibuat ini berdasarkan pengujian dapat bermanfaat bagi semua orang. 2. Berdasarkan hasil pengujian sql

injection terhadap website dari php 5 security on dan off serta python django dapatkan disimpulkan bahwa website php 5 security off lebih rentan diinject dibanding php 5 security on dan python django. 3. berdasarkan hasil pengujian

keamanan website dengan menggunakan sql injection maka bahasa pemrograman yang lebih bagus untuk digunakan adalah bahasa pmerograman php 5 security on dan pyhton django.

5.2 Saran

Beberapa saran untuk penelitian dan pengembangan uji coba keamanan website pada php 5 security ON dan OFF serta Python Django dengan menggunakan metode SQL Injection untuk selanjutnya yaitu:

1. Sebaiknya tidak hanya untuk website dari bahasa pemrograman PHP dan Python Django, akan tetapi lebih bervariasi sehingga lebih banyak pemahaman untuk dipraktekkan.

2. Website yang akan diuji sebaiknya sudah dihosting.

3. Tidak hanya menggunakan SQL Injection akan tetapi ditambah

dengan metode-metode

penyerangan yang lain.

Daftar Pustaka

[1] Abdul Kadir, 2003, “Dasar Pemrograman WEB Dinamis Menggunakan PHP” , YOgyakarta: ANDI.

[2] BM-100, "Hacking hiltonjakarta m

(SQL Injection)",.co24 juli 2005,

(http://www.jasakom.com).

[3] Budi Raharjo, "Keamanan Sistem

Informasi Berbasis Internet", PT

Insan Indonesia & PT INDOCISC. [4] Lukmanul Hakim, 2009, “Jalan

Pintas Menjadi Master PHP”,

Yogyakarta: LOKOMEDIA.

[5] McClure, Stuart; Saumil Shah.2003.

“Web Hacking, Serangan dan

pertahanannya” . Yogyakarta:

ANDI.

[6] Michele E. Davis and Jon A. Phillips, “Learning PHP & MySQL”

[7] Ridwan Sanjaya dan Onno W. Purbo, 2002, “Buku Pintar Internet

Membuat Aplikasi W@P dengan PHP”, Jakarta: PT.Elex Media

Komputindo.

[8] www.djangobook.com/en/2.0/”(also known as The Definitive Guide to Django: Web Development Done Right by Adrian Holovaty and Jacob Kaplan-Moss. Published by Apress)”.

Gambar

Tabel 1 perbandingan penelitian terdahulu dan  penelitian sekarang
tabel 2  Script Register Global
Gambar 1  Diagram Blok Sistem

Referensi

Dokumen terkait

Aplikasi pendeteksi plagiat dapat digunakan untuk mendeteksi kesamaan antar dua dokumen dan dengan beberapa dokumen yang ada. Kesamaan dokumen dapat diketahui dengan

Berdasarkan total data tersebut, diharapkan aplikasi data mining yang dibangun dapat digunakan untuk memprediksi hasil belajar siswa dengan baik, dan membantu para wali

Hasil uji dan analisa yaitu server KVM menjadi server tertinggi dalam penggunaan sumber daya CPU dan memori namun memiliki kinerja data center yang stabil; server OpenVz

Selanjutnya halaman admin, halaman ini dikhususkan untuk mengolah data admin, data tahun penilaian, data karyawan, data kriteria, data nilai dan data hasil pada

Pada proses pengenalan batik menggunakan android akan dilakukan ekstraksi ciri yang mampu mengindentifikasi ciri batik untuk mendapatkan karakteristik suatu citra

Misalnya jika pihak swalayan kehabisan stok barang A, dan pihak swalayan telah melakukan pengadaan barang dengan menggunakan aplikasi pengadaan barang, sistem

Hasil pengujian menunjukkan Vector Space Model dengan representasi cosine similarity dapat digunakan untuk mendeteksi kemiripan abstrak jurnal PA dengan

Pengujian akurasi yang dilakukan menunjukkan bahwa proses perhitungan TOPSIS pada tahap administrasi adalah 100%, tahap psikotes 100% dan 80% pada tahap wawancara, sehingga