• Tidak ada hasil yang ditemukan

APLIKASI WEB VULNERABILITY SCANNER UNTUK SERANGAN SQL INJECTION MEMANFAATKAN GOOGLE DORK “INURL”.

N/A
N/A
Protected

Academic year: 2017

Membagikan "APLIKASI WEB VULNERABILITY SCANNER UNTUK SERANGAN SQL INJECTION MEMANFAATKAN GOOGLE DORK “INURL”."

Copied!
81
0
0

Teks penuh

(1)

SERANGAN SQL INJ ECTION MEMANFAATKAN GOOGLE

DORK “INURL”

TUGAS AKHIR

Oleh :

MASYITHA

0834010155

J URUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

J AWA TIMUR

2012

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(2)

TUGAS AKHIR

Diajukan Untuk Memenuhi Sebagian Per syar atan Dalam Memper oleh Gelar Sar jana Komputer

J urusan Tek nik Infor matika

Oleh :

MASYITHA

0834010155

J URUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

J AWA TIMUR

(3)

i ABSTRAKSI

Hingga saat ini tindakan penyerangan pada suatu web semakin tinggi. Sering terlihat di media cetak,dan media elektronik begitu banyak berita yang memuat aksi-aksi penyerangan terhadap suatu situs web. Salah satu contoh faktor timbulnya tindakan hacking adalah kesalahan dalam scripting pembuatan web adalah hal terbanyak yang dimanfaatkan oleh para attacker, sehingga rata-rata web yang berhasil diserang melalui lubang ini. Kelemahan-kelemahan scripting yang ditemukan pada proses vulnerabilities scanning misalnya, SQLi.

Untuk mencegah tindakan tersebut dapat menggunakan jasa perusahaan audit keamanan web. Dan tentunya akan menghabiskan banyak biaya, untuk menghindari hal tersebut, dalam proyek akhir ini akan dibangun aplikasi web vulnerability scanner yang berfungsi untuk mendeteksi suatu kelemahan web terhadap kelemahan SQLi.

Maka dengan menggunakan aplikasi web vulnerability scanner dapat dideteksi suatu kelemahan web terhadap kelemahan SQLi dengan lebih dini sehingga dapat dicegah. Kedepannya aplikasi ini dapat melihat isi dari database website yang ditarget mempunyai kelemahan SQL Injection.

.

Kata kunci : SQLi ,Web Vulnerability Scanner.

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(4)

Disu su n O leh :

M O C H AM A D T R I J O K O

NP M . 0534010093

Tela h d isetu ju i meng iku t i Ujia n Ne gara Lisa n Ge lo mb ang I Ta hu n A kad emik 2 0 1 0 / 201 1

Pemb imb ing Ut ama

Ac hmad J u naid i, S.Ko m NPT. 3 788 110 4 4019 9

Pemb imb ing Pe nd amp in g

Chr yst ia Aji P, S.Ko m, NPT. 3861 0100 29 61

Meng etahu i,

Ketu a Pro gram Stud i Sistem Info rmas i

Un iv ersita s Pemb angu nan Nasio nal ”Vetera n” J awa T imu r

(5)

PEMBUATAN APLIKASI WEB VULNERABILITY SCANNER

TERHADAP KELEMAHAN XSS (Cr oss Site Scr ipting)

MENGGUNAKAN J AVA.

Disu su n O leh :

M O C H AM A D T R I J O K O

NP M . 0534010093

Telah dipertahankan di hadapan dan diterima oleh Tim Penguji Tugas Akhir Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional “Veteran” Jawa Timur

Pada Tanggal Februari 2010

Ir. Edi Purnomo Sasongko, MP NIP. 1 96 407 1 4198 80 31 001

Dekan Fakultas Teknologi Industri

Universitas Pembangunan Nasional “Veteran” Jawa Timur Surabaya

Ir. Sutiyono, MT NIP. 196007131987031001

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(6)

Alhamdulillah, dengan mengucapkan puji dan syukur kehadirat Allah

SWT atas rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas

akhir ini dengan judul “APLIKASI WEB VULNERABILITY SCANNER

UNTUK SERANGAN SQL INJECTION MEMANFAATKAN GOOGLE DORK

”INURL”.

“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 tugas akhir ini, terutama kepada:

1. Bapak Prof. Dr. Ir. Teguh Soedarto, MP, selaku Rektor UPN “Veteran” Jatim.

2. Bapak Ir. Sutiyono, MT, selaku DEKAN FTI UPN “VETERAN” Jatim.

3. Ibu Dr.Ir.Ni Ketut Sari, MT selaku Ketua Jurusan Teknik Infomatika UPN

“VETERAN” Jatim.

4. Bapak Hudan Studiawan, S.Kom, M.Kom selaku Dosen Pembimbing yang

telah meluangkan waktu untuk memberikan bimbingan selama proses

pelaksanaan Tugas Akhir penulis.

5. Special to: Orang Tua dan keluarga tercinta atas motivasi dan doanya sehingga semua yang dikerjakan dapat berjalan lancar.

6. Dosen-dosen Teknik Informatika, staff dan segenap civitas akademika UPN

(7)

iv

Awal), MAKCOMM (Fillah, Ika, Tika) dan tak lupa juga untuk seluruh

teman-teman TF angkatan 2008.Tidak lupa penulis ucapkan terima kasih

kepada teman-teman yang tidak dapat disebutkan satu persatu atas segala

bantuannya dalam menyelesaikan 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, Juni 2012

Penulis

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(8)

Halaman

HALAMAN JUDUL

LEMBAR PENGESAHAN

LEMBAR PENGESAHAN DAN PERSETUJUAN

KETERANGAN REVISI

MOTTO

ABSTRAKSI……… i

KATA PENGANTAR .……….… ii

DAFTAR ISI ……… iv

DAFTAR TABEL ……… vii

DAFTAR GAMBAR ……… viii

BAB I PENDAHULUAN ………. 1

1.1 Latar Belakang ………... 1

1.2 Perumusan Masalah ……….. 2

1.3 Batasan Masalah ………... 2

1.4 Tujuan ………... 2

1.5 Manfaat ………..……….….. 3

1.6 Metodelogi Penelitian ………... 3

1.7 Sistematika Penelitian …………...……….………… 4

(9)

iv

2.2 SQL injection ...…...………. 10

2.2.1 Default Setting SQL ………..…... 11

2.2.2 Mencari Target ... 12

2.2.3 Lokasi SQL Injecksion ... 13

2.3 PHP ………... 14

2.4 MySQL ... 26

2.5 HTML (Hyper Text Markup Language) ... 28

2.5.1 Struktur HTML ... 29

2.6 Web Server ... 30

2.6.1 Cara Kerja Web Server …………...……….. 31

2.7 Flowchart ... 32

2.8 Google Dork ... 33

2.9 Java Script ... 35

2.10 Google Api ... 37

BAB III PERANCANGAN ... 40

3.1 Desain Sistem ………... 41

3.2 Perancangan Sistem ……... 42

3.3 Perancangan Data Input.. ... 42

3.4.1 Data Input Web vulnerability Berbasis Online .... 42

3.4 Perancangan Proses ... 43

3.4.1 Proses Scanning ………... 43

3.5 Perancangan Antar Muka ….………….…..……….. 47

BAB IV IMPLEMENTASI ………..………. 49

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(10)

5.1 Lingkungan Pengujian ……….. 53

5.2 Uji Coba ………..……….. 53

5.2.1 Aplikasi Web Vulnerability Scanner …….…..….. 54

5.2.2 Proses Scanning ………...………. 55

5.3 ANALISIS ……… 63

5.3.1 Analisis Scan SQL Injection ….……….…… 64

BAB VI PENUTUP……… ………...………. 65

6.1 Kesimpulan……… ………. 65

6.2 Saran……..……… ………. 65

(11)

iv

Halaman

Tabel 2.1 Perbandingan Antara Web Statis Dengan Web Dinamis... 9

Tabel 2.2 Tipe Data Dalam My SQL.. ……….…...… 27

Tabel 2.3 Simbol Flowchart …...……….…...… 32

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(12)

Halaman

Gambar 2.1 Data Tipikal Untuk Halaman Web Yang Statis ……...……. 7

Gambar 2.2 Contoh Alur Data Pada Halaman Web Yang Dinamis.…… 10

Gambar 2.3 Contoh Ilustrasi SQLi Pada admin login area .………. 12

Gambar 2.4 Cara kerja Web Server………... 32

Gambar 3.1 Perancangan Sistem Secara Global ……….….. 41

Gambar 3.2 Diagram Alur Scan SQLi ... 44

Gambar 3.3 Hasil pencarian pada mesin bing bersarkan inputan Google dork ”inurl:article.php?id=” ...…... 45

Gambar 3.4 Website target belum terinjeksi ...…...… 46

Gambar 3.5 Website target sudah terinjeksi ………... 47

Gambar 3.6 Antarmuka Aplikasi WVS...….…….. 48

Gambar 4.1 Tampilan Utama Aplikasi..……….. 50

Gambar 4.2 Tampilan laporan scan sql injection ... 52

Gambar 5.1 Halaman Utama Aplikasi WVS…...…... 54

Gambar 5.2 Tampilan awal aplikasi …...…….... 55

Gambar 5.3a Proses Scanning ……... 56

Gambar 5.3b Proses Scanning ……...…... 56

Gambar 5.4 Report Scanning ...…...……... 57

Gambar 5.5 Tampilan Website Sebelum di Injeksi ...……... 58

Gambar 5.6 Tampilan website sesudah di injeksi ………... 58

(13)

iv

Gambar 5.9 Tampilan website sebelum di injeksi... 60

Gambar 5.10 Tampilan website sesudah di injeksi... 61

Gambar 5.11 Proses scanning Google dork inurl:gallery.php?id=…………61

Gambar 5.12 Laporan scanning Google dork inurl:gallery.php?id=……… 62

Gambar 5.13 Tampilan website sebelum di injeksi... 63

Gambar 5.14 Tampilan website sesudah di injeksi... 63

Gambar 5.15 Halaman URL yang telah di injeksi... 64

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(14)

1.1 Latae Belakang

Perkembangan dalam dunia maya terjadi sangat pesat. Teknologi baru

dirancang dan diimplementasikan untuk memenuhi kebutuhan pengguna yang

semakin beragam. Teknologi halaman web termasuk didalamnya. Teknologi yang

ada kini telah revolusi menuju ke tingkatan yang berbeda. Halaman web kini tidak

lagi statis namun juga dinamis. Kini halaman web yang dinamis merupakan

pemandangan yang biasa dilihat ketika melakukan surfing menggunakan internet.

Halaman web yang dinamis merupakan teknologi yang memberi perubahan

penyediaan informasi, layanan, dan tampilan secara signifikan. Halaman web

yang dinamis memungkinkan interaksi yang lebih baik antara penyedia layanan

dengan penggunanya. Dengan menggunakan teknologi ini, halaman web akan

terlihat lebih manusiawi. Penyedia layanan dapat menambahkan konten yang

sebelumnya masih merupakan impian belaka.

Dalam computer system security, istilah vulnerability merupakan suatu

kelemahan yang memungkinkan seseorang untuk masuk dan mendapatkan hak

akses ke dalam komputer yang dituju (target). Vulnerability adalah kelemahan

yang dikarenakan kesalahan setting ataupun ketidaktahuan administrator.

(Prayitno Ahmad, 2009)

Hingga saat ini angka kejahatan di dunia maya tetap tinggi dan terus

meningkat. Sebuah penelitian yang dilakukan oleh Corsaire menunjukkan bahwa

(15)

terhadap serangan yang dilakukan oleh para cracker. Corsaire mendasarkan hasil temuan ini pada penelitian selama enam tahun terakhir.

Dalam menganalisis, Corsaire menggunakan sampel dari

perusahaan-perusahaan besar di beberapa tempat termasuk Inggris, Australia, Eropa, Asia dan

tentu saja Amerika Serikat. Hasil analisis menunjukkan bahwa meski ada usaha

untuk memperbaiki aplikasi berbasis web ini. Namun setidaknya masih ada sekitar

25% yang memiliki resiko tinggi.

Menurut berita yang dilansir ITNews hari Selasa (09/12/08) disebutkan

bahwa 25% aplikasi yang digolongkan dalam kategori resiko tinggi ini memiliki

celah yang membuat aplikasi tersebut rentan terhadap serangan yang bisa

mengakibatkan pencurian data dan pembobolan jenis lain. Sedangkan 75%

sisanya masih dipecah lagi dalam kategori medium dan low yang artinya masih

memiliki celah namun tak terlalu parah. Berikut merupakan data dari (Joe

McCormack, 2009) tentang statistik serangan terhadap aplikasi Web:

Ga mbar 1.1 Data Statistik Serangan terhadap Aplikasi Web

Dari Gambar 1.1 diatas diketahui bahwa serangan XSS dan SQL Injection

menempati urutan 2 besar. Para hacker berkonsentrasi melakukan eksploitasi pada

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(16)

web-web di internet. Web yang tidak aman memberikan kemudahan akses kepada

hacker untuk memanipulasi informasi dan melakukan aktivitas ilegal dengan menggunakan situs yang telah diserang. Situs yang menjadi korban dapat

disalahgunakan untuk melakukan aktivitas criminal. Misalnya saja melakukan

phishing, pencurian informasi sensitif milik pengguna, memanen email pengguna

untuk keperluan spamming, dan lain-lain. Dalam kondisi ini, attacker dapat

membuat agar pemilik sah-nya yang bertanggung jawab atas tindak kejahatan

tersebut.

Para hacker telah memiliki banyak daftar serangan yang secara rutin

dilakukan pada situs-situs di internet termasuk SQL Injection. Dan para hacker

selalu memiliki update serangan-serangan terbaru terhadap situs-situs di internet.

Dilatarbelakangi permasalahan di atas, dalam proyek akhir ini dibangun

sebuah aplikasi yang berfungsi sebagai pendeteksi terhadap kelemahan SQL

Injection pada suatu aplikasi web, sehingga dengan bantuan aplikasi tersebut suatu

aplikasi web dapat dideteksi lebih dini terhadap kelemahan SQL Injection.

Selain itu, aplikasi ini juga memberikan info letak kelemahan suatu web

terhadap serangan SQL Injection. Dengan aplikasi ini, pengguna bisa mendeteksi

apakah web memiliki kelemahan SQL Injection atau tidak.

1.2 Rumusan Masalah

Dari latar belakang masalah yang telah dipaparkan, maka akan dibangun

aplikasi web vulnerability scanner untuk serangan SQL Injection memanfaatkan

Google. Adapun beberapa rumusan permasalahan yang ada dalam membangun

(17)

a) Bagaimana membangun web vulnerability scanner berdasarkan data masukan

dari pengguna untuk web vulnerability scanner berbasis online.

b) Bagaimana mengolah informasi dan menampilkan hasil scanning yang

dibutuhkan oleh pengguna.

1.3 Batasan Masalah

Sedangkan batasan masalah pada proyek akhir ini, antara lain yang

digunakan:

a) Bahasa yang digunakan adalah PHP dan software development yang

digunakan adalah Adobe Macromedia Dreamwaver.

b) Aplikasi web yang dapat dipindai adalah aplikasi web yang dibangun

dengan menggunakan bahasa pemrograman PHP dengan MySQL sebagai

DBMS.

c) Kelemahan yang dibahas adalah SQL Injection.

1.4 Tujuan

Tujuan proyek akhir ini adalah untuk membangun aplikasi web vulnerability

scanner menggunakan PHP. Adapun manfaat dengan dibangunnya aplikasi ini

adalah untuk mendeteksi kelemahan web terhadap serangan SQL Injection.

1.5 Manfaat

Berdasarkan dari latar belakang diatas maka dapat dirumuskan masalah

sebagai berikut:

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(18)

a. Membangun web secara secure.

Membuat website dengan tingkat kemanan yang tinggi sehingga tidak

mudah untuk dirusak atau dimasuki oleh pihak – pihak tertentu.

b. Terhindar dari defacer website.

Website bebas dari para perusak tampilan pada website yang telah

dibangun, bahkan menghapus seluruh data yang ada di dalam database.

c. Mendeteksi kelemahan web terhadap serangan SQL Injection.

Mendeteksi salah satu jenis serangan web yang dilakukan dengan

memanfaatkan kelemahan pada suatu aplikasi web sehingga

memungkinkan aplikasi untuk menginjeksikan suatu tag HTML pada

aplikasi web tersebut dikarenakan adanya variabel yang tidak disanitasi

dengan baik.

1.6 Metodologi Penelitian

Dalam pengerjaan proyek akhir ini meliputi langkah-langkah sebagai

berikut:

1. Studi Liter atur

Pada tahap ini dilakukan studi literatur dari beberapa referensi baik itu

dari buku atau internet.

2. Per ancangan Sistem

Pada tahap ini dilakukan perancangan sistem yang akan dibangun,

meliputi perancangan database, perancangan sistem dan pembuatan user

(19)

3. Per siapan Data

Data-data penunjang yang didapatkan berupa suatu kesimpulan,

fakta-fakta dan aturan yang mengatur proses pencarian data yang saling

berhubungan satu sama lain disimpan ke dalam basis data RDBMS

(Relational DataBase Management System) sebagai media penyimpanan.

4. 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.

5. Kesimpulan

Dibuat kesimpulan dari pengujian sistem proyek akhir dengan

membandingkan apakah hasilnya seperti yang diharapkan pada tujuan

proyek akhir sebelumnya.

6. Pembuatan Lapor an

Membuat dokumentasi dari semua tahapan proses diatas berupa laporan

yang berisi tentang dasar teori, hasil proyek akhir dan hasil analisis.

1.7 Sistematika Penelitian

Sistematika pembahasan yang akan diuraikan dalam buku laporan proyek

akhir ini terbagi dalam beberapa bab yang akan dibahas sebagai berikut:

BAB I PENDAHULUAN

Bab ini berisi tentang pendahuluan yang terdiri dari latar belakang,

perumusan masalah, batasan masalah, tujuan dan sasaran,

metodologi, serta sistematika pembahasan dari proyek akhir ini.

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(20)

BAB II TEORI PENUNJ ANG

Bab ini membahas mengenai teori-teori yang berkaitan dengan

penyelesaian proyek akhir, yang didapatkan dari berbagai macam

buku serta sumber-sumber terkait lainnya yang berhubungan

dengan pembuatan proyek akhir ini.

BAB III PERANCANGAN SISTEM

Bab ini membahas mengenai perancangan sistem, meliputi

perancangan hirarki, perancangan proses, dan perancangan user

interface.

BAB IV IMPLEMENTASI

Bab ini membahas mengenai implementasi sistem.

BAB V UJ I COBA DAN ANALISA

Bab ini menyajikan dan menjelaskan seluruh hasil dan analisa

dalam pembuatan proyek akhir ini dan bagaimana penyelesaian

dari setiap permasalahan error yang terjadi pada sistem operasi

Windows.

BAB VI PENUTUP

Bab ini berisi kesimpulan dari uji coba perangkat lunak, dan saran

untuk pengembangan, perbaikan serta penyempurnaan terhadap

(21)

6

TINJ AUAN PUSTAKA

2.1 Web

Penemu website adalah Sir Timothy John ¨Tim¨ Berners-Lee, sedangkan

website yang tersambung dengan jaringan, pertamakali muncul pada tahun 1991.

Maksud dari Tim ketika membuat website adalah untuk mempermudah tukar

menukar dan memperbarui informasi kepada sesama peneliti di tempat dia

bekerja. Pada tanggal 30 April 1993, menginformasikan bahwa WWW dapat

digunakan secara gratis oleh semua orang.

Sebuah website bisa berupa hasil kerja dari perorangan atau individu, atau

menunjukkan kepemilikan dari sebuah organisasi, perusahaan, dan biasanya

website itu menujukkan beberapa topik khusus, atau kepentingan tertentu. Sebuah

website bisa berisi hyperlink (pranala) yang menghubungkan ke website lain, jadi,

kadangkala perbedaan antara website yang dibuat oleh individu perseorangan

dengan website yang dibuat oleh organisasi bisnis bisa saja tidak kentara. Website

ditulis, atau secara dinamik di konversi menjadi HTML dan diakses melalui

sebuah program software yang biasa disebut dengan web browser, yang dikenal

juga dengan HTTP Client. Halaman web dapat dilihat atau diakses melalui

jaringan komputer dan internet, perangkatnya bisa saja berupa komputer pribadi,

laptop, PDA ataupun telepon selular. Sebuah website dibuat didalam sebuah

sistem komputer yang dikenal dengan server web, juga disebut HTTP Server, dan

pengertian ini juga bisa menunjuk pada software yang dipakai untuk menjalankan

sistem ini, yang kemudian menerima lalu mengirimkan halaman-halaman yang

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(22)

diperlukan untuk merespon permintaan dari pengguna. Apache adalah piranti

lunak yang biasa digunakan dalam sebuah webserver, kemudian setelah itu adalah

Microsoft Internet Information Services (IIS).(FN Jovan, 2007)

Web mempunyai 2 kategori yaitu:

a. Web statis

Tampilan web yang dilihat ketika melakukan surfing melalui internet

sebenarnya hanyalah file teks biasa. File tersebut terletak pada sebuah server

yang dimiliki oleh penyedia layanan tersebut. File ini dapat diperoleh oleh

pengguna dengan sebuah request. File dengan ekstensi tertentu tersebut

kemudian ditampilkan dengan menggunakan sebuah program interpreter.

Ektensi file yang biasa ditemukan antara lain html, htm, php, asp, cgi dan lain

lain. Untuk lebih jelasnya dapat dilihat oleh pengguna.

(23)

Software penerjemah melakukan proses visualisasi berdasarkan perintah yang

terdapat pada file teks yang diperoleh. Kesalahan bahasa pada file teks yang

diterima akan menyebabkan kesalahan pada proses penerjemahan. Software

penerjemah ini lebih dikenal dengan sebutan browser web. Browser web

populer saat ini adalah Firefox, Google Chrome.

b. Web Dinamis

Perbedaan mendasar antara proses penyediaan halaman web statis dengan

proses penyediaan halaman web yang dinamis terletak pada request dan

program penyediaan halaman web pada server yang digunakan. Tabel 2.1

menunjukkan perbedaan tersebut.

Dari Tabel 2.1, dapat disimpulkan bahwa teknologi dynamic web page

memungkinkan halaman web yang mampu beradaptasi masukan pengguna. Untuk

mendukung kemampuan tersebut, server yang menggunakan tekonologi dynamic

web page didukung kemampuan bahasa pemrograman. Isi halaman web yang

dinamis, terdapat pada server, biasanya berisi script pemrograman dalam bahasa

yang biasa terdapat dalam teknologi web seperti JavaScript dan VB. Script

pemrograman ini menerima dan memproses variabel – variabel yang dilakukan

pengguna ketika request dilakukan.

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(24)

Tabel 2.1 Perbandingan antara web statis dengan web dinamis

Teknologi Request Program pada server

Static web page Informasi berisi halaman yang diinginkan

Mengirimkan halaman yang

diinginkan

Halaman tersebut merupakan

file yang sama dengan yang

terdapat pada server

Dynamic web page Informasi berisi halaman yang diinginkan ditambah

masukkan pengguna

Mengirimkan halaman yang

isinya berdasarkan masukkan

pengguna

Isi halaman yang dikirimkan

dapat berbeda dengan yang

terdapat pada server

Halaman yang dikirimkan oleh server akan berisi informasi yang sangat

tergantung algoritma pemrosesan dari halaman yang terdapat pada server. Gambar

2.2 menunjukkan contoh alur data halaman web yang dinamis. Halaman web yang

dinamis ditunjukkan oleh file helo.asp. Terlihat bahwa file sumber (yang terdapat

(25)

Gambar 2.2 Contoh alur data pada halaman web yang dinamis

2.2 SQL injection

SQL injection adalah kegiatan menyisipkan perintah SQL kepada suatu SQL statement yang ada pada aplikasi yang sedang berjalan. Dengan kata lain, SQL injection ini merupakan suatu teknik pengeksploitasi pada web apilikasi yang

didalamnya menggunakan database untuk penyimpanan datanya. Terjadinya SQL

injection tersebut dikarenakan security atau keamanan pada level aplikasi (dalam

hal ini aplikasi web) masih kurang sempurna. Kurang sempurnanya adalah pada

cara aplikasi menangani inputan yang boleh di proses ke dalam database.

Misalnya pada suatu web yang terdapat fasilitas login, terdapat dua buah

inputan pada umumnya, yaitu username dan password. Jika karakter yang masuk

melalui dua buah inputan tersebut tidak difilter (disaring) dengan baik maka bisa

menimbulkan efek SQL injection, hal ini disebabkan oleh input yang secara sistem

akan menjadi bagian dari kriteria dari suatu perintah SQL di dalam aplikasi web.

Secara garis besar terjadinya SQL injection tersebut adalah sebagai berikut:

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(26)

a. Tidak adanya pemfilteran terhadap karakter – karakter tanda petik satu ’ dan

juga karakter double minus -- yang menyebabkan suatu aplikasi dapat disisipi

dengan perintah SQL.

b. Sehingga seorang hacker dapat menyisipkan perintah SQL kedalam suatu

parameter maupun pada text area suatu form.

2.2.1 Defa ult Setting SQL

Seperti yang diketahui bahwa teknik SQL injection ini memungkinkan

seseorang dapat login ke dalam sistem tanpa harus memiliki account. Salah

satunya yaitu default setting SQL. Default setting SQL yang paling berbahaya

adalah menggunakan adminID = sa dan password blank alias (kosong). Apabila

ada direktori sebuah situs yang disitu ada input untuk adminnya maka dimasukkan

id-nya dengan = 'sa' dan password-nya = ' ' maka langsung masuk sebagai admin,

ini jika default setting-nya belum diubah.

Namun ada lagi string yang bisa diinput untuk akses sebagai web admin yaitu

dengan string ' OR 1=1-- apabila ada input web admin berupa user dan password.

Maka apabila di masukan string ' OR 1=1-- di input box user dan masukan foobar

di input box password, maka akan membuat SQL query bingung diakibatkan jadi

SQL Query membacanya sebagai:

SELEC

T * from users where User ='' or 1=1-- and Password ='foobar'

yang artinya SQL melakukan SELECT semua query dari user yang user-nya ''

(kosong) atau (OR) 1=1 (tr ue) -- (tanda -- adalah mark dari SQL seperti halnya di

(27)

Gambar 2.3Contoh ilustrasi SQL injection Pada admin login area

Jika diuraikan, logikanya adalah SQL menganggap 1=1 sebagai true sehingga

diartikan kolom password diabaikan karena setelah 1=1 terdapat mark SQL ( -- )

sehingga password itupun diabaikan.

Inti dari injeksi dalam langkah awalnya adalah memaksa keluar sebuah error

page yang berisi informasi struktur database situs itu dan jika ingin melihatnya

harus dilakukan debug. Jadi yang dimasukkan adalah string debugging SQL code,

yaitu ' having 1=1--‘. Ini adalah string yang harus dimasukkan jika ingin melihat

error page dari situs sasaran. Sehingga, dapat dikatakan bahwa teknik ini

memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki

account. Selain itu SQL injection juga memungkinkan seseorang merubah,

menghapus, maupun menambahkan data–data yang berada didalam database.

Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga

tidak bisa memberi layanan kepada web server. (Deris Setiawan, 2005).

2.2.2 Mencar i Tar get

Situs web MS-SQL dengan ASP adalah situs yang paling rentan terhadap

serangan ini. Hal pertama yang dilakukan dalam pencarian target yang sudah tidak

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(28)

asing lagi bagi yaitu buka www.google.com, pada kolom keywordnya masukkan

allinur l:co.nz/admin.asp, atau allinur l:/logon.asp, keyword ini dapat di

modifikasi ke berbagai bentuk. Penulisan allinurl perlu dicantumkan, dengan

begitu Google akan segera mencari semua URL dalam sebuah situs yang

mempunyai direktori /admin.asp. maka bisa saja mengganti keyword tersebut

dengan allinur l:.co.id atau net atau or g, or.id, sampai allinurl:.fr /admin.asp

semua tergantung kemauan di dalam mencari target menggunakan Google. Hal

yang terpenting dari semua itu adalah harus diketahui di mana harus memasukkan

string SQL misalnya di member login, user login, dan bahkan dapat pula di search product dan lainnya. (Deris Setiawan, 2005)

2.2.3 Lokasi SQL injection

Injeksi pada situs target tidak selalu melalui input box. Injeksi juga bisa

dilakukan dengan memasukan string-string SQL di URL situs target. Misalnya ada

sebuah situs www.xxxxxx.com/moreinfo.cfm?ProductID= 245 lalu, ketikkan

string injeksi debuging SQL tadi ke address bar dibelakang url target itu, salah

satu contohnya:

www.xxxxxx.com/moreinfo.cfm?ProductID=245' having 1=1-- atau juga dapat

menghapus nilai produk dari URL tersebut dan ganti dengan debugging codenya,

sebagai contoh:

www.xxxxxx.com/moreinfo?ProductID=' having 1=1--”

Apabila setelah itu akan keluar sebuah error page dari situs itu, ini

menandakan bahwa situs tersebut dapat memberikan informasi tentang struktur

(29)

SQL injection berikutnya. Apabila browser yang digunakan adalah Internet Explorer, ada sebagian situs yang tidak menampilkan error-nya. Hal ini

dikarenakan opsi Show Friendly HTTP Error Messages diaktifkan. Untuk itu

perlu menonaktifkannya dengan cara menghilangkan tanda centang di kotaknya.

Opsi ini dapat ditemukan di Tools > Inter net Option > Advanced cari opsinya di

bagian browsing lalu hilangkan tanda injeksi pada situs target tidak selalu

melakukan input box. Injeksi juga bisa dilakukan dengan centangnya dan klik

tombol Apply. Sesudah itu apabila menemui error page yang berisi HTTP 500

error - internal server error.

Sebelum mengatur opsi tadi, cukup menekan tombol Refresh, lalu terlihatlah

sudah error-nya. Setelah diketahui struktur database dari situs target, dengan

pengetahuan dasar dari belajar SQL yang dapat menghancurkan database itu

dengan perintah ' dr op database [nama_database] atau drop table

[nama_table]. Namun bukan ini yang dicari dalam SQL injection karena tidak

mendapat apa-apa dari string tadi. (Setiawan Deris, 2005)

2.3 PHP

Bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak

dipakai untuk memrogram situs web dinamis, walaupun tidak tertutup

kemungkinan digunakan untuk pemakaian lain. Contoh terkenal dari aplikasi PHP

adalah phpBB dan MediaWiki (software di belakang Wikipedia). PHP juga dapat

dilihat sebagai pilihan lain dari ASP.NET/C#/VB.NET Microsoft, ColdFusion

Macromedia, JSP/Java Sun Microsystems, dan CGI/Perl. Contoh aplikasi lain

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(30)

yang lebih kompleks berupa CMS yang dibangun menggunakan PHP adalah

Mambo, Joomla!, Postnuke, Xaraya, dan lain-lain.

Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs

Personal). PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada

waktu itu PHP masih bernama FI (Form Interpreted), yang wujudnya berupa

sekumpulan script yang digunakan untuk mengolah data form dari web.

Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan

menamakannya PHP/FI. Dengan perilisan kode sumber ini menjadi open source,

maka banyak programmer yang tertarik untuk ikut mengembangkan PHP. Pada

November 1997, dirilis PHP/FI 2.0. Pada rilis ini interpreter PHP sudah

diimplementasikan dalam program C. Dalam rilis ini disertakan juga

modul-modul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan.

Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter

PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada Juni 1998,

perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis

tersebut sebagai PHP 3.0 dan singkatan PHP dirubah menjadi akronim berulang

PHP: Hypertext Preprocessing. Pada pertengahan tahun 1999, Zend merilis

interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah

versi PHP yang paling banyak dipakai pada awal abad ke-21. Versi ini banyak

dipakai disebabkan kemampuannya untuk membangun aplikasi web kompleks

tetapi tetap memiliki kecepatan dan stabilitas yang tinggi.

Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter

PHP mengalami perubahan besar. Versi ini juga memasukkan model

(31)

bahasa pemrograman ke arah paradigma berorientasi objek. kelebihan PHP dari bahasa pemrograman lain:

a. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan

sebuah kompilasi dalam penggunaanya.

b. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai

apache, IIS, Lighttpd, nginx, hingga Xitami dengan konfigurasi yang relatif mudah.

c. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis dan

developer yang siap membantu dalam pengembangan.

d. Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah

karena memiliki referensi yang banyak.

e. PHP adalah bahasa open source yang dapat digunakan di berbagai mesin

(Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime

melalui console serta juga dapat menjalankan perintah-perintah system.

PHPmemiliki 7 tipe data yaitu :

1. Integer

Nilai sebuah data dari sebuah tipe data integer adalah nilai bilangan bulat

tersebut dalam matematika. Representasi data ini merupakan cara

bagaimana nilainya disimpan di dalam memori komputer. Tipe data

integral terbagi menjadi dua buah kategori, baik itu bertanda (signed)

ataupun tidak bertanda (unsigned). Bilangan bulat bertanda mampu

merepresentasikan nilai bilangan bulat negatif, sementara bilangan bulat

tak bertanda hanya mampu merepresentasikan bilangan bulat positif.

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(32)

Representasi integer positif di dalam komputer sebenarnya adalah untaian

bit, dengan menggunakan sistem bilangan biner. Urutan dari bit-bit

tersebut pun bervariasi, bisa berupa Little Endian ataupun Big Endian.

Selain ukuran, lebar atau ketelitian (presisi) bilangan bulat juga bervariasi,

tergantung jumlah bit yang direpresentasikanya. Bilangan bulat yang

memiliki n bit dapat mengodekan 2n. Jika tipe bilangan bulat tersebut

adalah bilangan bulat tak bertanda, maka jangkauannya adalah dari 0

hingga 2n-1.

2. Double

Double adalah deklarasi untuk tipe data numerik bilangan pecahan secara

default

3. Boolean

Boolean adalah suatu tipe data yang hanya mempunyai dua nilai. Yaitu

true atau false (benar atau salah). Pada beberapa bahasa pemograman nilai

true bisa digantikan 1 dan nilai false digantikan 0.

4. String

String dalam pemrograman komputer adalah sebuah deret simbol. Tipe

data string adalah tipe data yang digunakan untuk menyimpan barisan

karakter.

5. Object

Object merupakan tipe data yang bisa berupa bilangan, variabel atau

fungsi. Data ini dapat dimasukkan ke dalam skrip program sehingga

(33)

6. Array

Array adalah suatu tipe data terstruktur yang dapat menyimpan banyak data dengan suatu nama yang sama dan menempati tempat di memori yang

berurutan (kontigu) serta bertipe data sama pula. Array dapat diakses

berdasarkan indeksnya. Indeks array umumnya dimulai dari 0 dan ada

pula yang dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat

dengan menggunakan perulangan (looping).

7. Null

Null itu artinya kosong, Tapi artian kosong tidak sama dengan string ""

atau string empty.

Kode program PHP menyatu dengan tag-tag HTML dalam satu file. Kode

PHP diawali dengan tag <? atau <?php dan ditutup dengan tag ?>. File yang

berisi tag HTML dan kode PHP ini diberiekstensi .php atau ekstensi lainnya yang

ditetapkan pada Apache atau web server. Berdasarkan ekstensi ini, pada saat file

diakses, server akan tahu bahwa file ini mengandung kode PHP. Server akan

menerjemahkan kode ini dan menghasilkan keluaran dalam bentuk tag HTML

yang akan dikirim ke browser client yang mengakses file tersebut. Sebagai

Echo “Selamat menggunakan PHP”; ?>

</CENTER> </BODY> </HTML>

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(34)

Pada contoh program diatas terdapat satu baris perintah PHP, yaitu

<?

Echo “Selamat menggunakan PHP”; ?>

Perintah ini dibuka dengan tag <? dan ditutup dengan tag ?>. Perintah PHP dapat

disisipkan disembarang tempat dari file diatas. Setiap baris perintah PHP diakhiri

dengan tanda titik koma (;), tag penutup ?> juga dapat berfungsi sebagai

pengganti titik koma (;), jadi baris perintah diatas dapat juga dituliskan <?

Echo“Selamat menggunakan PHP”?> (Abdul Kadir, 2009).

Penggunan cURL pada php

cURL (dibaca: si URL) singkatan dari Client URL dan dikembangkan oleh

Daniel Stenberg pada tahun 1998 sebagai alat bantu command line untuk transfer

files dengan sintaks URL melalui bermacam-macam protokol (FTP, HTTP, HTTPS, SCP, SFTP, TELNET, LDAP, dsb). Langkah awal menggunakan cURL

dalam PHP adalah menginisialisasi sebuah session (atau disebut juga membuat

cURL resource), yaitu dengan:

<?php

$ch = curl_init(); //buat resource cURL ?>

Setelah sebuah resource cURL terbentuk, curl_init() akan memberikan penangan

(handle) berupa fungsi-fungsi untuk meset berbagai opsi (curl_setopt()), untuk

mulai menjalankan cURL sesuai dengan opsi yang diset (curl_exec()), dan

kemudian menutup session dari resource yang dibentuk tersebut (curl_close()).

Misal ingin mendapatkan halaman http://gedex.web.id/, maka bisa menggunakan

(35)

<?php

$ch = curl_init(); //buat resourcce cURL

//set opsi URL

curl_setopt($ch, CURLOPT_URL, "http://gedex.web.id/"); ?>

Setelah itu bisa mendapatkan halamannya dengan memanggil fungsi curl_exec(),

yang secara otomatis (defaultnya) akan mencetak halaman tersebut.

<?php

$ch = curl_init(); //buat resourcce cURL

//set opsi URL

curl_setopt($ch, CURLOPT_URL, "http://gedex.web.id/");

//dapatkan halaman URL dan berikan (cetak) ke browser curl_exec($ch);

?>

Untuk membebaskan pemakaian resource sistem, ada baiknya menutup session

dari resource cURL yang telah dibuat dengan fungsi curl_close():

<?php

$ch = curl_init(); //buat resourcce cURL

//set opsi URL

curl_setopt($ch, CURLOPT_URL, "http://gedex.web.id/");

//dapatkan halaman URL dan berikan (cetak) ke browser curl_exec($ch);

//tutup resource cURL curl_close($ch); ?>

Pada contoh di atas, output halamannya langsung dicetak setelah memanggil

fungsi curl_exec($ch). Agar output dikembalikan dari fungsi curl_exec()

(sehingga bisa ditampung ke sebuah variabel untuk pemrosesan lainnya) tanpa

langsung mencetak, perlu menset CURLOPT_RETURNTRANSFER ke true.

Contohnya:

<?php

$ch = curl_init(); //buat resourcce cURL

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(36)

//set opsi URL dan opsi RETURNTRANSFER

curl_setopt($ch, CURLOPT_URL, "http://gedex.web.id/"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

//dapatkan halaman URL dan berikan ke variabel $output $output = curl_exec($ch);

//tutup resource cURL curl_close($ch);

//ganti kata 'gedex' dengan 'dini'

$output = str_replace('gedex', 'dini', $output);

//cetak output echo $output; ?>

Pada contoh di atas, halaman web (file HTML) tidak langsung dicetak

setelah pemanggilan curl_exec($ch), tapi diberikan ke variabel $output yang

selanjutnya digunakan untuk mengganti kata ‘gedex’ menjadi kata ‘dini’. Inilah

salah satu opsi yang tersedia dari curl_setopt(). Masih ada banyak lagi opsi

curl_setopt yang tersedia. Tulisan kali ini tidak akan membahas semua opsi yang

tersedia, tetapi hanya sebagian opsi yang menarik dan sering digunakan. Opsi

pertama yang menarik adalah CURLOPT_FOLLOWLOCATION. Lihat kembali contoh

di atas (penggunaan cURL dengan CLI dengan parameter -L). Apabila opsi

CURLOPT_FOLLOWLOCATION diset ke true, cURL akan mengikuti redirect

(pengalihan) saat mencoba mendapatkan file. Misal saat cURL mencoba

mendapatkan halaman (file HTML) http://google.com dan halaman index

google.com meredirect ke http://google.co.id, cURL secara otomatis mengikuti

dan mendapatkan halaman http://google.co.id. Jika familiar dengan beberapa CMS

berbasis PHP, ada beberapa file yang tidak bisa akses secara langsung melalui

URL dan jika diakses akan diredirect ke file PHP lainnya. Biasanya file tersebut

menggunakan fungsi header ("Location: http://domain/file_lainnya"). cURL akan

(37)

<?php

$ch = curl_init(); //buat resourcce cURL

//set opsi URL dan opsi FOLLOWLOCATION

curl_setopt($ch, CURLOPT_URL, "http://www.google.com"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

//dapatkan halaman URL curl_exec($ch);

//tutup resource cURL curl_close($ch); ?>

Dua opsi yang berkaitan dengan opsi CURLOPT_FOLLOWLOCATION adalah

CURLOPT_MAXREDIRS dan CURLOPT_AUTOREFERER. Opsi CURLOPT_MAXREDIRS

digunakan untuk menentukan banyaknya redirect yang dapat dilalui oleh cURL.

Jika ingin mengaturnya dengan nilai 3, maka setelah 3x redirect cURL tidak akan

mengikuti redirect selanjutnya. Penggunaan opsi CURLOPT_AUTOREFERER yang

diatur ke true akan menyebabkan cURL menambahkan Referer header disetiap

redirect. Pada contoh di atas (parameter -d dengan CLI), cURL dapat digunakan

untuk mengirim data layaknya menginput form. Ambil contoh lagi, kali ini

halaman yang sedang dibaca, tepatnya form komentar di bawah. Untuk mengirim

komentar di halaman ini menggunakan cURL, perlu diketahui field post yang

akan ditangkap oleh server. OK, ini potongan HTML untuk form komentar:

<form

action="http://gedex.web.id/wp-comments-post.php" method="post" id="commentform">

<p><input type="text" name="author" id="author" value="" size="22" tabindex="1" />

<label for="author"><small>Name (required)</small></label></p>

<p><input type="text" name="email" id="email" value="" size="22" tabindex="2" />

<label for="email"><small>Mail (will not be published) (required)</small></label></p>

<p><input type="text" name="url" id="url" value="" size="22" tabindex="3" />

<label for="url"><small>Website</small></label></p>

<p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(38)

<p><input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" />

<input type="hidden" name="comment_post_ID" value="5" /> </p>

</form>

Ada lima field (author, email, url, comment dan comment_post_ID) yang

bisa dikirim. Ditulis menggunakan cURL dalam PHP. Opsi untuk melakukan

request dengan metode HTTP POST adalah CURLOPT_POST (harus diatur ke true

jika ingin mengirim data). Opsi yang terkait adalah CURLOPT_POSTFIELDS yang

nilainya berupa string yang merepresentasikan data yang akan dipost. Lima field

tersebut dapat diencode ke bentuk URL menjadi:

$data =

author=gedex&email=gedex@dudu.lz&url=http://gedex.web.id&comment=t esting post data in string using cURL&comment_post_ID=5

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

Atau bisa juga dengan menggunakan array:

$data

= array('author' => 'gedex', 'email' => 'gedex@dudu.lz',

'url' => 'http://gedex.web.id', 'comment' => 'testing post data in array using cURL', 'comment_post_ID' => '5');

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

Disini untuk mengirim data (memberi komentar di halaman ini) menggunakan

cURL, kodenya kurang lebih seperti ini:

<?php

$ch = curl_init(); //buat resourcce cURL

//set opsi URL dan opsi FOLLOWLOCATION

curl_setopt($ch, CURLOPT_URL, "http://gedex.web.id/wp-comments-post.php");

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

//set opsi post dan data post

$data = array('author' => 'gedex', 'email' => 'gedex@dudu.lz', 'url' => 'http://gedex.web.id', 'comment' => 'testing post data in array using cURL', 'comment_post_ID' => '148');

(39)

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

Opsi lainnya adalah CURLOPT_CONNECTTIMEOUT yang digunakan untuk

menentukan seberapa cURL harus menunggu saat mencoba terhubung. Nilainya

bertipe integer yang merepresentasikan banyaknya waktu dalam satuan detik. Jika

CURLOPT_CONNECTTIMEOUT diatur, nilainya perlu diperhatikan. Karena jika

diatur terlalu kecil dapat menyebabkan request gagal (tidak terjadi) dan jika diatur

terlalu tinggi (misal 1000 atau 0 untuk tak hingga) dapat menyebabkan skrip PHP

menjadi crash. Opsi yang terkait dengan opsi ini adalah CURLOPT_TIMEOUT, yang

digunakan untuk menentukan berapa lama eksekusi request cURL. Jika mengatur

nilainya terlalu kecil dapat menyebabkan halaman yang lambat loadingnya

menjadi tidak lengkap tertangkap cURL. Opsi lainnya adalah

CURLOPT_USERAGENT, yang dapat digunakan untuk mengatur string user-agent

saat meminta, misalnya:

<?php

$ch = curl_init(); //buat resourcce cURL

//set opsi URL dan opsi lainnya

curl_setopt($ch, CURLOPT_URL, "http://www.useragent.org/"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($ch, CURLOPT_USERAGENT, 'gedex web spider/1.0');

//crawl URL curl_exec($ch); ?>

Ada banyak opsi lainnya seperti CURLOPT_BINARYTRANSFER, CURLOPT_FTPA

PPEND, CURLOPT_HEADER, CURLOPT_PUT, CURLOPT_UPLOAD, dan sebagainya.

Semuanya bisa dibaca di manual curl_setopt. Selain fungsi curl_setopt(), fungsi

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(40)

lainnya yang cukup berguna adalah curl_getinfo(). Fungsi curl_getinfo() digunakan

untuk mendapatkan berbagai macam informasi mengenai halaman yang telah

diakses dan juga mengenai akses (request) itu sendiri. Fungsi ini menerima

parameter berupa resource cURL dan parameter setelahnya adalah opsi yang

berupa konstanta untuk mendapatkan informasi tertentu. Jika hanya parameter

awal saja maka nilai yang diberikan oleh fungsi ini berupa array berupa informasi

request terakhir. Contohnya:

<?php

$ch = curl_init(); //buat resourcce cURL

//set opsi URL dan opsi lainnya

curl_setopt($ch, CURLOPT_URL, "http://www.gedex.web.id/"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FILETIME, true);

$outout = curl_exec($ch);

//cetak info echo <pre>

print_r (curl_getinfo($ch)); echo </pre>

?>

Informasi yang didapat adalah mengenai request terakhir yang terjadi,

seperti jumlah waktu yang dibutuhkan, content-type, ukuran header dan

sebagainya. Mengatur CURLOPT_FILETIME ke true agar curl_getinfo() memberikan

output mengenai waktu modifikasi dari dokumen yang didapat (Rusli Ahmad,

2010). Berikut output yang diberikan:

Array (

[url] =>

http://gedex.web.id/wp-login.php?redirect_to=%2Fwp2.5%2Fwp-admin%2F [content_type] => text/html; charset=UTF-8 [http_code] => 200

(41)

[ssl_verify_result] => 0

[download_content_length] => 1886 [upload_content_length] => 0 [starttransfer_time] => 2.119 [redirect_time] => 13.227 )

2.4 MySQL

MySQL adalah database yang paling banyak dipakai. Menurut perusahaan

pengembangnya, MySQL telah terpasang di sekitar 3 juta komputer. Puluhan

hingga ratusan ribu situs mengandalkan MySQL bekerja siang malam memompa

data bagi para pengunjungnya. Penyebab utama MySQL begitu popular di

kalangan web maupun desktop. Pertama, MySQL tersedia di berbagai platform

Linux dan berbagai varian Unix. Sesuatu yang tidak dimiliki MS Access, misalnya

padahal MS Access amat popular di platform Windows. Banyak server Desktop

berbasiskan Unix, ini menjadikan MS Access otomatis tidak dapat dipakai karena

tidak memiliki kemampuan client-server atau networking.

Kedua, fitur-fitur yang dimiliki MySQL memang yang biasanya banyak

dibutuhkan dalam aplikasi Desktop. Misalnya, klausa Limit SQL-nya, praktis

untuk melakukan paging. Atau jenis indeks field Fultext, untuk full text searching.

Atau sebutlah kekayaaan fungsi-fungsi builtinnya, mulai dari memformat dan

memanipulasi tanggal, mengolah string, regex, enkripsi dan hashing. Yang

terakhir misalnya, praktis untuk melakukan penyimpanan password anggota situs.

Sementara fitur-fitur yang lebih jarang digunakan belum atau baru muncul saja di

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(42)

versi-versi terakhir. Subselect misalnya, sampai saat ini tidak ada di MySQL. Atau

view, atau stored procedure, atau trigger.

Sebelum versi 3.23.15 sekitar dua tahun yang lalu MySQL tidak bisa

melakukan transaksi sama sekali. MySQL adalah database yang paling banyak

dipakai. Menurut perusahaan pengembangnya, MySQL telah terpasang di sekitar 3

juta komputer. Puluhan hingga ratusan ribu situs mengandalkan MySQL bekerja

siang malam memompa data bagi para pengunjungnya.

Tabel 2.2 Tipe Data Dalam My SQL

Tipe Data Keterangan

INT(M) [UNSIGNED] Angka -2147483648 s/d 2147483647

FLOAT(M,D) Angka pecahan

DATE Tanggal

Format: YYYY-MM-DD

DATE TIME Tanggal dan Waktu

Format: YYYY-MM-DD HH:MM:SS

CHAR(M) String dengan panjang tetap sesuai dengan

yang ditentukan.

Panjangnya 1-255 karakter

VARCHAR(M) String dengan panjang yang berubah-ubah

sesuai dengan yang disimpan saat itu. Panjangnya 1-255 karakter

BLOB Teks dengan panjang maksimum 65535

karakter

LONGBLOB Teks dengan panjang maksimum 4294967295

karakter

Ketiga, MySQL memiliki overhead koneksi yang rendah. Soal kecepatan

melakukan transaksi atau kinerja di kondisi load tinggi mungkin bisa

diperdebatkan dengan berbagai benchmark berbeda. MySQL menunjukkan

(43)

MySQL cocok bekerja dengan aplikasi CGI, di mana di setiap request skrip akan

melakukan koneksi, mengirimkan satu atau lebih perintah SQL, lalu memutuskan

koneksi lagi. Cobalah melakukan hal ini dengan Interbase atau bahkan Oracle.

Maka dengan load beberapa request per detik saja server Desktop atau database

mungkin akan segera menyerah karena tidak bisa mengimbangi beban ini.

Dalam bahasa SQL pada umumnya informasi tersimpan dalam tabel-tabel yang

secara logik merupakan struktur dua dimensi terdiri dari baris (row atau record)

dan kolom (column atau field). Sedangkan dalam sebuah database dapat terdiri

dari beberapa table. Beberapa tipe data dalam MySQL yang sering dipakai (Bimo,

2003).

2.5 HTML (Hyper Text Mark up Language)

Di dalam desain web, tidak akan bisa lepas dengan yang namanya HTML

(Hypertext Markup Language). HTML adalah bahasa standar yang diguna-

kan untuk menyusun/membangun suatu halaman web (Bimo, 2003).

2.5.1 Str uktur HTML

Bahasa HTML (tag) dapat ditulis/dibuat melalui berbagai macam word editor,

misalnya Notepad, Wordpad, PHP Designer 2005, dan lain-lain. Tag-tag tersebut

dapat dituliskan dengan huruf besar ataupun huruf kecil. Setelah tag HTML

ditulis dengan menggunakan Notepad atau word editor yang lain, simpanlah file

tersebut dengan format file nama_file.htm atau nama_file.html. Sebagai contoh,

file HTML tersebut disimpan dengan nama index.htm atau index.html. Adapun

struktur HTML adalah sebagai berikut:

<HTML> <HEAD> <META>

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(44)

<TITLE> … </TITLE> </HEAD> <BODY> …

</BODY> </HTML>

Keterangan:

a. Tag HTML secara default dimulai dari <HTML> dan diakhiri dengan

</HTML>.

b. Tag <HEAD> … </HEAD> merupakan tag kepala sebelum badan. Tag

kepala ini akan terlebih dulu dieksekusi sebelum tag badan. Di dalam

tag ini berisi tag <META> dan <TITLE>. Tag <META> merupakan

informasi atau header suatu dokumen HTML. Atribut yang dimiliki oleh

tag ini antara lain:

c. HTTP_EQUIV, atribut ini berfungsi untuk menampilkan dokumen

HTML secara otomatis dalam jangka waktu tertentu.

d. CONTENT, atribut ini berisi informasi tentang isi document HTML yang akan dipanggil.

e. NAME, atribut ini merupakan identifikasi dari meta itu sendiri. Tag <META>

dalam suatu dokumen HTML boleh ada maupun tidak. Sedangkan tag

<TITLE> … </TITLE> adalah tag judul. Sebaiknya setiap halaman web

memiliki judul, dan judul tersebut dituliskan di dalam <TITLE> …

</TITLE>. Judul ini akan muncul dalam titlebar dari browser.

f. Sedangkan tag <BODY> … </BODY> adalah tag berisi content dari suatu

(45)

Setelah tag tersebut di atas ditulis, simpan dalam format .htm atau

.html (misal index.htm) akan tetapi terlebih dahulu ubah Save as type

ke dalam All Files. Kemudian tentukan letak direktori mana file tersebut

akan disimpan, selanjutnya klik Save. Selanjutnya dokumen HTML tersebut

dipanggil dengan browser untuk melihat hasilnya. Dari tampilan pada browser

di atas, dapat terlihat bahwa apa yang ditulis pada “ <TITLE> … </TITLE> akan

muncul pada titlebar browser dan apa yang ditulis pada <BODY> … </BODY>

akan muncul pada halaman web.Untuk selanjutnya, hanya akan memperhatikan

tag-tag yang ada di dalam <BODY> … </BODY> karena bentuk tampilan atau

desain web tergantung pada tag yang ditulis di dalam <BODY> … </BODY> ”.

2.6 Web Server

Web Server atau Server Web merupakan sebuah perangkat lunak server yang

berfungsi menerima permintaan HTTP atau HTTPS dari klien yang dikenal

dengan broser web dan mengirimkan kembali hasilnya dalam bentuk

halaman-halaman web yang umumnya berbentuk dokumen HTML. Jadi, pada dasarnya web

server hanyalah sebuah perangkat lunak yang bisa saja berada di komputer

apapun dengan spesifikasi apapun. PC biasa pun dapat berfungsi sebagai web

server. Karena web server hanyalah suatu perangkat lunak, saat ini banyak pilihan

yang dapat dipilih. Mulai dari yang gratis (free) sampai yang berbayar, mulai dari

yang kompleks sampai yang bias berjalan di CD. Beberapa diantaranya yang

cukup banyak digunakan adalah Apache webserver, Internet Information Services

(IIS), Xitami, PWS, dan sebagainya. (Indonesia Friend World, 2010)

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(46)

Cara Kerja Web Server

Prinsip atau cara kerja web server itu sendiri, cukup sederhana untuk

dipahami, karena pada dasarnya tugas web server hanya ada 2 (dua), yaitu:

a. Menerima permintaan (request) dari client.

b. Mengirim apa yang diminta oleh client (response).

Penjelasan Gambar 2.4:

1. Client disini dapat berupa computer desktop dengan minimal memiliki

browser dan terhubung ke web server melalui jaringan (intranet atau internet).

2. Komputer yang berfungsi sebagai server, dimana di dalamnya terdapat

perangkat lunak web server. Agar komputer ini dapat diakses oleh client maka

komputer harus terhubung ke jaringan (intranet atau internet). Dalam jaringan

internet, komputer ini biasa saja bernama www.Google.com. www.bl.ac.id

atau memiliki kode computer (disebut IP Address) seperti 202.10.20.10 dan

200.100.50.25.

3. Pertama, client (user) akan meminta suatu halaman ke (web) server untuk

ditampilkan di komputer client. Misalnya client mengetikan suatu alamat

(biasa disebut URL) di browser http://www.google.com. Client menekan

tombol enter atau klik tombol Go pada browser. Melalui media jaringan (bisa

internet, bisa intranet) dan melalui protocol http, akan dicarilah computer

bernama www.google.com. Jika ditemukan, maka seolah-olah terjadi

permintaan, inilah yang disebut request.

4. Sekarang dari sisi server (web server). Mendapat permintaan halaman utama

(47)

permintaan. Jika ditemukan, maka halaman yang diminta akan dikirimkan ke

client, Namun jika tidak ditemukan, maka server akan memberi pesan “404. Page Not Found”,

Gambar 2.4 Cara kerja web server

2.7 Flowchar t

Flowchart adalah sekumpulan simbol-simbol yang menunjukkan atau menggambarkan rangkaian kegiatan-kegiatan program dari awal hingga akhir.

Jadi flowchart juga digunakan untuk menggambarkan urutan langkah-langkah

pekerjaan di suatu algoritma. Penjelasan arti dari lambing-lambang flowchart

dapat didefinisikan seperti pada tabel berikut ini (Yuniar, 2007):

Tabel 2.3 Simbol Flowchart

Simbol Fungsi

Terminator, untuk memulai dan mengakhiri suatu program.

Process, menunjukkan setiap pengolahan yang dilakukan oleh komputer.

Data, untuk memasukkan data maupun menunjukkan

hasil dari suatu proses.

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

(48)

Decision, suatu kondisi yang akan menghasilkan beberapa kemungkinan jawaban atau pilihan.

Connector, merupakan simbol untuk masuk dan keluarnya suatu prosedur pada lembar kertas yang sama.

Off-page connector, merupakan simbol untuk masuk dan keluarnya suatu prosedur pada lembar kertas yang lain.

Flow atau arus, prosedur yang dapat dilakukan dari atas

ke bawah, bawah ke atas, kiri ke kanan, atau kanan ke

kiri.

Document, merupakan simbol untuk data yang berbentuk informasi.

Predefined process, untuk menyatakan sekumpulan langkah proses yang ditulis sebagai prosedur.

Display, untuk output yang ditujukan suatu device, seperti monitor.

Magnetic disk, untuk menyimpan data.

2.8 Google Dork

Google dork sebagai senjata hacking. Banyak pencarian pada search engines

(49)

keyword-keyword yang tersimpan di mesin search engines. Sehingga untuk

mempermudahnya Google menyediakan fasilitas-fasilitas (dork), untuk

mempermudahkan suatu pencarian, bahkan juga dapat melakukan hacking

(melihat password) account orang lain yang terindex oleh Google. (Berry, 2011)

Table 2.4 Type-type Google dork

Keyword Keterangan

Intitle atau allintitle (Mencari judul atau title pada suatu web)

Inurl atau allinurl (Mencari suatu string yang terdapat pada url)

filetype (Mencari suatu file secara lebih spesifik)

(www.google.c.id/help/faq_filetypes.html)

allintext (Mencari suatu nilai string dalam suatu web)

site (Mencari pada web tertentu)

link (Mencari web-web yang mempunyai link pada

web yang di pilih)

Contoh dalam penggunaannya:

Apabila ingin mencari sebuah lagu dari aveng*d maka diketikan saja di Google

seperti ini

intit

le:"index of/avenged"

dan apa hasilnya, akan terlihat semua kumpulan lagu-lagu tersebut, dan dengan

mudah untuk mengunduhnya. Pengertian di atas, maksudnya biasanya dalam

sebuah database file web terdapat kata (index of) maka digunakan fungsi intitle

untuk mencari sebuah title yang berkaitan dengan kata (index of), lalu ketikan kata

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh kHak Cipta © milik UPN "Veteran" Jatim :

Gambar

Gambar 2.1 Alur data tipikal untuk halaman web yang statis
Tabel 2.1 Perbandingan antara web statis dengan web dinamis
Gambar 2.2 Contoh alur data pada halaman web yang dinamis
Gambar 2.3 Contoh ilustrasi SQL injection Pada admin login area
+7

Referensi

Dokumen terkait

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber... Loop yang dipakai

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber... BAB V : UJI COBA

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber... Kriptografi adalah

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber... 1 BAB I PENDAHULUAN

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber... PENGGUNAAN FORWARD

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber... APLIKASI INVENTORY GUDANG OBAT BERBASIS WEB DAN SMS GATEWAY PADA

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber.... Bapak Achmad Junaidi,

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.arya tulis ini tanpa mencantumkan dan menyebutkan sumber... menerima pesan teks