You are on page 1of 10

Teknik-teknik Hacking pada Web aplikasi

Filed Under (All, Hacking, Web) by Ph4][)HL1 R4Ph1Q1 on 16-04-2008


Tagged Under : All, Hacking, Tip & Trick

Ada beberapa teknik hacking pada web aplikasi diantaranya adalah sebagai berikut:

1. Hidden Manipulation

Field-field tersembunyi sering digunakan untuk menyimpan informasi tentang sesi


klien, untuk menjaga kompleksitas database pada server side. Seorang klien
biasanya tidak melihat field tersembunyi dan juga tidak berusaha untuk
mengubahnya. Bagaimanapun juga memodifikasi form field sangatlah sederhana.
Sebagai contoh , marilah kita anggap bahwa harga sebuah produk disimpan dalam
field tersembunyi. Seorang hacker dapat mengubah harganya, seperti berikut ini :

* Membuka sebuah halaman html dengan HTML editor.


* Menempatkan sebuah field tersembunyi (contoh., ��)

* Memodifikasi nilainya dengan nilai yang berbeda (contoh. ��)

* Menyimpan file html ditempat itu dan mem-browse-nya.


* Mengklik tombol �buy� untuk menampilkan e-shoplifting melalui hidden
manipulation.

2. Parameter Tampering (Perusakan Parameter)

Kegagalan untuk mengkonfirmasi kebenaran dari parameter-parameter Common Gateway


Interface (CGI) yang tersimpan dalam hyperlink., dapat dengan mudah digunakan
untuk mematahkan keamanan situs. Seperti di bawah ini :

Search.exe?template=result.html&q=security

Dengan mengganti parameter template, seorang hacker dapat memperoleh akses menuju
file yang diinginkannya,

seperti /etc/passwd atau private key situs contoh :


Search.exe?template=/etc/passwd&q=security

3. Cookie Poisoning

Umumnya Web aplikasi menggunakan cookie dengan tujuan untuk menyimpan informasi
(user id, time stamp, dan lain-lain.) pada sisi klien. Sebagai contoh, ketika
seorang user log ke beberapa situs, sebuah login CGI memvalidasi user name-nya dan
password-nya dan mengeset sebuah cookie dengan identifier numerik-nya. Ketika user
mengecek preference-nya kemudian, CGI yang lain (sebut saja, preferences.asp) me-
retrive cookie dan menampilkan catatan-catatan user information sesuai dengan
user-nya. Data-data yang tersimpan dalam cookie tidaklah aman, seorang hacker
dapat memodifikasi-nya, jadi informasi yang terdapat pada cookie tersebut dapat
dicuri dan dimanfaatkan oleh hacker.

III. Perampokan Acme Fashion, Inc.

Pada pertengahan th 1990an, ketika popularitas Web sedang menanjak, wakil manajer
pemasarannya memutuskan untuk membuat situs www.acme-fashions.com bagi
perusahaannya dan meletakkan dan meletakkan semua katalog di sana. Tim marketing
kemudian sibuk membuat halaman HTML dan mengkonversi katalog-katalognya dalam
bentuk elektronis.
Tetapi, begitu ada penjualan melalui situs Web tersebut, muncul juga keluhan-
keluhan pelanggan. Kebanyakan keluhan ditujukan kepada departemen keuangan dan
gudang. Departemen keuangan sering menerima keluhan mengenai produk yang dijual
berharga lebih rendah daripada harga yang ditetapkan, padahal tidak ada diskon
atau promosi yang ditawarkan. Karyawan di bagian pengiriman sering bingung sewaktu
mereka mendapat order pengiriman dengan jumlah barang tertulis dalam angka
negatif. Ketika kerugian hampir mencapai 100.000 dolar, akhirnya pihak direksi
memanggil tim ahli sekuriti.

3.1. Melacak Masalah

Toko Web Acme � www.acme-fashions.com � telah menerapkan beberapa teknologi


berikut ini:

Sistem Operasi Microsoft Windows NT 4.0

Web Server Microsoft Internet Information Server (IIS) 4.0

Katalog Online Template dan Active Server Page (ASP)

Database back-end Microsoft Access 2.0

Shopping Troli Shopcart.exe

Katalog HTML dibuat dengan menggunakan template dan Active Server Pages. Tim
pemasaran pernah menggunakan FoxPro untuk database-nya dan menghasilkan halaman
katalog HTML secara otomatis. Kemudian database Fox-Pro itu dikonversi ke dalam
database Microsoft Access dan antarmukanya memakai ASP. Aplikasi trolli
belanjanya, Shocart.exe, di setup pada server, serta template ASP didesain untuk
menghasilkan HTML yang terhubung dengan aplikasi troli belanja. Troli belanja
mengambil informasi produk dari HTML tersebut. Saat itu, kelihatannya semua cara
itu sangat mempermudah dan mempercepat kesiapan toko elektronis dan bisa online
sebelum deadline.

Shopcart.exe mempunyai sistem session management-nya sendiri, untuk menjalankan


sesi troli belanja, yang bergantung pada cookie dan server-side session
identifier. Karena tidak dimungkinkan untuk memodifikasi Shopcart.exe, tugas-tugas
untuk memvalidasi input diserahkan ke JavaScript yang bekerja pada browser
pelanggan.

3.2. Bahaya Tersembunyi pada Field-Field Tersembunyi

Setelah dipelajari ternyata ditemukan sebuah lubang pada cara penerapan sistem
troli belanja. Dimana satu-satunya cara untuk menghubungkan harga dengan produknya
melalui tag-tag tersembunyi pada halaman HTML. Gambar 3.1. menunjukkan halaman
yang menampilkan baju-baju dan katalog di http://www.sceme-fashions.com.

Setiap baju memiliki hubungan dengan form penerimaan kuantitas baju yang dibeli
dan terhubung juga dengan troli belanja. Pada kode HTML seperti yang diperlihatkan
pada gambar 3.2. juga dapat ditemukan kelemahannya, yakni pada beberapa baris
terakhir.

Source code berikut ini digunakan untuk memanggil Shopchart.Exe:


Quantity:

Sewaktu user mengklik tombol Buy, browser men-submit semua field input ke server,
menggunakan request POST. Ada tiga field tersembunyi pada baris 2, 3, dan 4 dari
kode tersebut. Nilai-nilainya juga terkirim bersama dengan request POST. Dengan
demikian, sistem membuka suatu kelemahan pada tingkat aplikasi, karena user bisa
saja memanipulir nilai dari field tersembunyi sebelum men-submit-nya ke form.

Untuk memahami situasi ini secara lebih baik, maka dapat kita perhatikan secara
seksama request HTTP yang berasal dari browser ke server:

POST /cgi-bin/shopcart.exe/MYSTORE-AddItem HTTP/1.0

Referer: http://www.acme-fashions.com/shirtcatalog/shirts2.asp

Connection: Keep-Alive

User-Agent: Mozilla/4.76 [en] (Windows NT 5.0; U)

Host: www.acme-fashions.com

Accept: image /gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*

Accept-Encoding:gzip Accept-Language: en

Accept-Charset : iso-8859-1,*,utf-8

Cookie: ASPSESSIONIDQQGQQKIG=ONEHLGJCCDFHBDHCPKGANANH; shopcartstore=3009912

Content-type: application/x-www-form-urlencoded

Content-lengt: 65

PartNo=OS0015&Item=Acme+Shirts&Price=89.99&qty=1&buy.x=16&buy.y=5

Nilai dari field tersembunyi PartNo, Item dan Price di-submit dalam request POST
ke /cgi-bin/shopcart.exe. Itulah cara satu-satunya Shopcart.exe mengambil harga,
misalnya baju nomor OS0015. Browser menampilkan respon yang ditunjukkan pada
Gambar 3.3.

Oleh karena request POST dikirim bersama dengan nilai yang bisa dimodifikasi pada
field price, user pun bisa mengontrol harga baju tersebut. Request Post berikut
ini menunjukkan bahwa harga baju yang semula 89.99 dolar diubah menjadi 0,99
dolar.

POST /cgi-bin/shopcart.exe/MYSTORE-AddItem HTTP/1.0

Referer: http://www.acme-fashions.com /shirtcatalog/shirts2.asp

Connection: Keep-Alive

User-Agent: Mozilla/4.76 [en] (Windows NT 5.0; U)

Host: www.acme-fashions.com

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*

Accept-Encoding:gzip Accept-Language: en

Accept-Charset: iso-8859-1,*,utf-8

Cookie: ASPSESSIONIDQQGQQKIG=ONEHLGJCCDFHBDHCPKGANANH; shopcartstore=3009912


Content-type: application/x-www-form-urlencoded

Content-length: 64

PartNO=OS0015&Item=Acme+Shirts&Price=0.99&qty=1&buy.x=16&buy.y=5

Cara mudah untuk mengubah-ubah harga adalah dengan menyimpan halaman katalog,
shirts2.asp, menampilkannya pada browser sebagai salinan lokal, shirts2.html, di
hard disk user, mengedit file tersebut, dan mengubah � ubah kode HTMLnya. Gambar
3.4. menunjukkan bagaimana user menyimpan halaman tersebut.

User pertama-tama mengubah nilai pada field price pada baris . Perubahan
berikutnya adalah pada link ACTION=dalm tag
. Link yang dituju adalah http://www.acme-fashions.com/cgi-bin/shopcart.exe.
Gambar 3.5. menunjukkan file shirts2.html setelah memodifikasi harga menjadi 0,99
dolar.

Sekarang, jika user membuka file yang sudah dimodifikasi ini, shirts2.html, pada
browser dan men-submit request untuk membeli pakaian, dan melihat window seperti
ditunjukkan pada gambar 3.6.

Seperti yang dapat kita lihat, hal inilah yang membuat Acme-Fashions menderita
kerugian. Setelah melakukan penelitian menyeluruh pada semua order dan transaksi,
tim pemeriksa keamanan menemukan juga bahwa sejumlah besar �pelanggan� bisa
membeli barang dalam harga yang sangat rendah. Kata �pelanggan� dalam konteks ini
mengandung arti para hacker.

3.3. Mem-Bypass Validasi Client Side

Kesalahan lain yang ditemukan oleh tim peneliti keamanan adalah cara input
divalidasi sebelum dilewatkan ke Shopcart.exe. Aplikasi Web terdiri dari banyak
script dan komponen interaktif. Semua itu terutama untuk berinteraksi dengan user
melalui form HTML pada browser. Bagian interaktif dari tiap komponen mengambil
input dari form HTML dan memprosesnya pada server. Form HTML berciri generik bila
berfungsi sebagai pengambil data, dan tak ada cara lain untuk menjamin validasi
data di dalam form seperti itu. Misalnya, bila sebuah form HTML didesain untuk
menerima tanggal, user bisa saja memasukkan tanggal seperti ini: 99/88/77 dan
browser tidak mempedulikannya. Aplikasi harus memiliki mekanisme validasi inputnya
sendiri untuk mem-filter input-input yang salah bentuk atau tidak sesuai dengan
kriteria yang sudah ditentukan pada aplikasi. Validasi input untuk form HTML bisa
dilakukan baik pada server-side dengan Perl, PHP, atau ASP, dll. Juga dapat
dilakukan pada client-side dengan menggunakan bahasa script seperti JavaScript
atau Vbscript.

Tim pengembangan Acme menyadari kebutuhan validasi input seperti itu. Tetapi,
karena Shopcart.exe merupakan aplikasi yang berciri Prepackaged (tidak bisa
dimodifikasi lebih lanjut), maka ia tidak bisa dimodifikasi untuk bisa
menggabungkan validasi input dengan script client-side pada browser-nya sendiri,
mungkin dengan tujuan untuk menghemat penggunaan CPU server, sehingga pekerjaan
itu dijalankan oleh browser klien.

Namun, kenyataannya mekanisme client-side manapun bisa diubah-ubah dengan cara


mengedit atau mengganti-ganti source code HTML yang diterima oleh browser. Tim
penguji keamanan menemukan beberapa contoh validasi client-side yang digunakan
pada www.acme-fashion.com. Gambar 3.7. menunjukkan validasi input sedang
dijalankan pada sistem Acme. Seorang user berusaha membeli sejumlah �-5� pakaian
dan sebuah peringatan muncul bahwa user memasukkan nilai yang salah.
Berikut ini adalah kode JavaScript untuk memvalidasi input yang dipisahkan dari
elemen-elemen HTML-nya.

function validate(e) {

if(isNaN(e.value) || e.value <= 0) {

alert (�Please enter a valid number�) ;

e.value = 1;

e.focus();

return false;

else {

return true;

Kode ini memastikan bahwa hanya angka positif saja yang diperbolehkan pada field
qty. Tetapi, karena validasi ini dilakukan oleh script client-side, maka bisa
dengan mudah di-bypass. Menonaktifkan eksekusi JavaScript dengan cara men-setting
preferensi browser bisa membuat hacker mem-bypass validasi pada client-side. Jika
kita memasukkan nilai apa saja yang diinginkan pada field-field input.

Gambar 3.8. menunjukkan bagaimana menonaktifkan JavaScript pada Netscape. Sekarang


jika user memasukkan nilai �-3�, browser akan mengeluarkan request POST berikut
ini pada server.

POST /cgi-bin/shopcart.exe/MYSTORE-AddItem HTTP/1.0

Referer: http://www.acme-fashions.com /shirtcatalog/shirts2.asp

Connection: Keep-Alive

User-Agent: Mozilla/4.76 [en] (Windows NT 5.0; U)

Host: www.acme-fashions.com

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*

Accept-Encoding:gzip Accept-Language: en

Accept-Charset: iso-8859-1,*,utf-8

Cookie: ASPSESSIONIDQQGQQKIG=ONEHLGJCCDFHBDHCPKGANANH; shopcartstore=3009912


Content-type: application/x-www-form-urlencoded

Content-length: 63

PartNo=OS0015&Item=Acme+Shirts&Price=-3&qty=1&buy.x=16&buy.y=5

Selanjutnya dapat kita lihat bagaimana request HTTP ini bisa mem-bypass seluruhnya
validasi input pada client-side. Gambar 3.9. menunjukkan respon pada server.

Pada layar tampak bahwa user telah membuat pesanan untuk 5 baju masing-masing
seharga 55,99 dolar, dan hari berikutnya membeli -3(minus 3) baju masing-masing
seharga 89,99 dolar. Total biaya adalah 4,98 dolar. Kemampuan untuk meletakkan
angka negatif pada jumlah pembelian bisa membuat si pembeli kegirangan. Kecacatan
inilah yang menyebabkan karyawan pengiriman Acme menerima order jumlah item dengan
angka negatif.

3.4. Menghadapi Masalah Baru pada Sistem yang Telah Diteliti

Sebelumnya, pihak direksi Acme sudah berhadapan dengan dan mengatasi masalah-
masalah menyangkut pengubahan nilai harga barang selama belanja musim liburan yang
baru lalu. Sepertinya hal itu belum cukup, sekarang Acme menghadapi masalah lagi.
Kali ini berhubungan dengan pencurian kartu kredit. Pihak direksi memanggil lagi
tim ahli keamanan komputer untuk menganalisis masalah tersebut.

Tim itu menemukan bahwa pada semua log di Web server selama bulan Agustus, tidak
ada entri satu pun untuk tanggal 29 Agustus. Tim yakin bahwa hal itu disebabkan
oleh hacker yang menghilangkan file C:\WINNT\ System32\ LogFiles\ W3SVC1\
ex20010829. log yang berisi data log untuk tanggal itu. Ukuran file-nya pun
direduksi menjadi 0 byte. Ini menunjukkan bahwa hacker pasti sudah memasuki
kontrol administratif pada server agar bisa menghapus log-log pada Web server IIS.

Karena tidak ada catatan yang bisa diteliti lebih lanjut, akhirnya tim tersebut
hanya bisa berspekulasi mengenai penyebab serangan. Penyelidikan yang menyeluruh
pada sistem hard disk menghasilkan bahwa file �purchases.mdb� ada pada dua
direktori.

C: \>dir purchases.mdb / s

Volume in drive C is ACMEFASHION

Volume Serial Number is 48CD-A4A0

Directory of C:\ACMEDATA

08/29/2001 08:13p 2,624,136 purchases.mdb

1 files(s) 2,624.136 bytes

Directory of C:\Inetpub\wwwroot

08/29/2001 08:33p 2,624,136 purchases.mdb

1 files(s) 2,624,136 bytes

Total Files Listed:

2 File(s) 5,248,272 bytes


0 Dir(s) 111,312,896 bytes free

Bagaimana file purchases.mdb bisa dikopi dari direktori C:\ACMEDATA ke


C:\Inetpub\wwwroot? Administrator sistem di Acme Fashion menyatakan bahwa
purchases.mdb dipakai untuk menampung informasi order pelanggan, termasuk nama,
alamat pengiriman, alamat tagihan, iem yang dibeli dan kartu kredit yang digunakan
untuk untuk membayar item-item tersebut. Pihak yang mendesain aplikasi meyakinkan
direksi bahwa file database berada di luar root dokumen server
(c:\inetpub\wwwroot0. Tim ahli keamanan menyimpulkan bahwa, karena salinan dari
file purchase.mdb dibuat pada jam 11:33 p.m tanggal 29 Agustus 2001, telah terjadi
penyalahgunaan kartu kredit oleh hacker. Hacker pasti telah menyalin file dari
C:\ACMEDATA ke C:Inetpub\wwwroot dan men-download-nya pada browser menggunakan
request http://www.acme-fashions.com/purchase.-mdb. Tetapi, ia rupanya lupa
menghapus salinan file pada direrktori C:\Inetpub\wwwroot setelah men-download-
nya.

3.5. Eksekusi Perintah Jarak Jauh

Kenyataan bahwa satu file bisa dikopi dari satu lokasi ke lokasi dan bahwa log-log
Web server dihapus mengisyaratkan bahwa hacker berhasil menjalankan perintah-
perintah eksekusi pada www.acme-fashions.com dan memiliki akses ke sana setingkat
�super-user� atau �administrator�. Setelah mengevaluasi secara menyeluruh keamanan
sistem operasi dan mengunci semua prosedur, tim menyimpulkan bahwa kelemahannya
hampir pasti terletak pada error di kode program aplikasi. Masalah tersebut
kemudian bermuara pada cacatnya validasi input pada kode program troli belanjanya
sendiri. Gambar 3.10. menunjukkan bagaimana troli belanja berinteraksi dengan
beragam elemen dari aplikasi Web.

Troli belanja dikendalikan oleh script Perl pusat, yaitu mywebcart.cgi. Semua sesi
client-side dilacak dan diatur oleh mywebcart.cgi. Troli belanja mengambil
informasi produk dari database products.mdb dan membawanya ke modul terminal
checkout yang menangani pembayaran pelanggan yang kemudian disimpan pada
purchase.mdb.

Gambar 3.11. menunjukkan halaman yang dihasilkan oleh mywebcart.cgi. Pada gambar
dapat kita lihat bagaimana URL dikomposisi.

URL tersebut adalah:

http://www.acme-fashions.com/cgi -

bin/ mywebcart.cgi?Cust=0873&nextpage=shirts3.html&cid=03417

Elemen yang paling menarik pada URL ini adalah parameter-parameter yang dilewatkan
berikut nilai-nilainya. Pada parameter nextpage melewatkan nilai �shirts3.html�.
Pada kode program Perl mywebcart.cgi, baris berikut ini mempunyai kelemahan:

$file = �c: \inetpub\wwwroot\catalog_templates\� . $input { �nextpage�};

open (FILE, $file) || die �Cannot open $file\n�;

File mywebchart.cgi terkunci. Parameter nextpage dilewatkan ke fungsi Perl open()


tanpa ada satupun validasi input. Seorang penyerang bisa menyisipkan simbol pipa
�|� di belakang nilai yang ditentukan pada nextpage dan menyebabkan fungi open()
bisa mengeksekusi perintah-perintah yang merugikan.

Request berikut ini menyebabkan mywebcart.cgi mengeksekusi perintah �dir c:\� pada
www.acme-fashions.com:
http://www.acme-fashions.com/cgi -

bin/mywebcart.cgi?cust=0873&nextpage=;dir+c:\|&cid=03417

Pada titik ini kita bisa beranggapan bahwa hacker harus telah menjalankan tampilan
daftar direktori penuh dengan perintah �dir c;\|s�. Dari hasil yang tampak, si
hacker mengetahui bahwa ada file purchase.mdb pada direktori C:\ACMEDATA.
Selanjutnya ia menyalin file tersebut ke c:\inetpub\wwwroot kemudian men-download-
nya menggunakan alamat http://www.acme-fashions.com/purchase.mdb. Gambar 3.13. dan
3.14. menunjukkan bagaimana file itu disalin dan akhirnya di-download.

Demonstrasi oleh para ahli keamanan ini menunjukkan adanya pelanggaran keamanan
yang serius pada mywebcart.cgi. Bahkan saat ini, banyak model troli belanja yang
terkenal dan dipakai orang memiliki kelemahan-kelemahan seperti itu.

3.6. Posmortem dan Pencegahan Lebih Lanjut

Acme Fashions, Inc., menderita banyak kerugian uang dan waktu oleh karena tiga
kesalahan selama satu rentang waktu. Semua kesalahan itu muncul karena cacatnya
bentuk validasi input dan karena kurang terintegrasinya data yang diterima dari
Web browser.

Pertama, kecacatan itu disebabkan oleh penggunaan field-field tersembunyi secara


tidak benar. Informasi penting seperti ID produk dan harga dilewatkan melalui
field tersembunyi dalam form HTML. Kita tahu bahwa sewaktu respon HTML dikirim
melalui browser web, server itu kehilangan kendali atas data yang dikirim. HTTP
bersifat statis, dan server tidak bisa menentukan apakah data yang dikembalikan
masih utuh atau sudah rusak. Field tersembunyi bisa dimanipulir pada client side
dan dikirimkan kembali ke Web server. Jika server tidak mempunyai cara validasi
input yang ketat atas informasi dari field tersembunyi, klien bisa merusak data
dan tidak terkendali lagi oleh sistem. Untuk memproteksi sistem dari serangan
integritas data seperti ini, developer situs Web harus mencegah pelewatan
informasi melalui field tersembunyi. Sebaliknya, informasi seperti ini seharusnya
diletakkan pada database di server, dan informasi itu dapat diambil dari database
jika diperlukan.

Kesalahan kedua adalah menggunakan script client-side untuk menjalankan validasi


input. Para developer sering tergoda untuk menggunakan JavaScript atau VBScript
dalam menulis program pengeksekusian pada client-side dan membuang batasan-batasan
yang ada pada server. Tetapi, script client-side sama rentannya dengan field
tersembunyi dalam hal daya tahan dari perusakan data. Script client-side
seharusnya hanya digunakan untuk melancarkan navigasi atau menambahkan
interaktifitas dan daya tarik halaman Web. Seorang penyerang bisa dengan mudah
melewatkan atau memodifikasi script client-side dan menghindari setiap bentuk
pemeriksaan yang dilakukan oleh script tersebut. Dalam kasus Acme, penyerang bisa
menyisipkan nilai kuantitas negatif dengan mudahnya dan melewati setiap bentuk
batasan yang dijalankan oleh oleh JavaScript. Sama dengan hal itu, beberapa toko
berbasis Web menjalankan operasi aritmatik pada client-side, misalnya menghitung
total kuantitas dan harga dari sebuah order dari dalam form isian itu sendiri.
Bagi pelanggan sendiri akan menjadi fitur yang menarik bila mereka bisa mengetahui
harga yang sudah di-update pada browser tanpa perlu men-submit nilai ke server dan
menunggu respon darinya. Tetapi, teknik ini harus dihindari dan aplikasi harus
didesain untuk mengeksekusi validasi dan perhitungan pada server side sehingga
penyerang tidak bisa memanipulir data.

Kelemahan yang terakhir disebabkan oleh sanitasi input yang lemah pada
mywebcart.cgi. Sewaktu data dilewatkan oleh field dalam bentuk HTML ke fungi-
fungsi yang rentan seperti open(), buanglah setiap kombinasi atau meta-karakter.
Dua bentuk validasi input yang harus dilaksanakan ditujukan kepada: pertama,
panjang data yang diterima (untuk mencegah serangan buffer overflow) dan kedua,
meta-karakter. Dalam hal ini, Acme harus menyisipkan sanitasi input untuk menapis
meta-karakter seperti �&�, �%�, �$�, �|�, dan �<�.

Masalah keamanan lainnya yang terkait dengan sistem belanja e-commerce, secara
umum meliputi informasi yang dipanggil dari file temporer pada server, mekanisme
enkripsi yang buruk, eksposur file system directory, eskalasi privilege, disklosur
informasi pelanggan, perubahan produk, perubahan order, dan penolakan terhadap
layanan. Semua hal tersebut memberikan celah bagi terjadinya serangan. Masalah ini
ditemukan pada beberapa aplikasi e-commerce.

IV. Menangkis Serangan pada Web Application

Para hacker biasanya mencari sebuah target yang mudah untuk di-hack dalam waktu
yang singkat. Berikut ini adalah beberapa teknik yang dapat digunakan untuk
menangkis serangan pada Web application.

* Akses ke situs dengan memanfaatkan SSL.

Hanya dengan menggunakan secure socket layer (SSL), situs akan memblok simple CGI
scanners, tool-tool raw-interface mode dan worm-worm internet. Memanfaatkan SSL
dapat dengan mudah dilakukan dengan cara membuat suatu konfigurasi server yang
hanya bekerja pada SSL (biasanya pada port 443) dan memblok trafik menuju por 80.
Jika dibutuhkan sebuah entry page dalam HTTP, maka ini mungkin dapat menggunakan
sebuah server kecil yang akan mengalihkan ke alamat HTTPS.

* Menggunakan metoda �HTTP post� seluas mungkin.

Menggunakan �HTTP post� request mengurangi kemudahan dari penggunaan tool-tool


raw-mode interface dan browser-browser untuk menyerang sebuah situs. Penyerang
menggunakan tool-tool raw-mode interface untuk digunakan secara manual meng-craft
sebuah POST request, yang sedikit lebih susah daripada sebuah GET request
sederhana, karena mereka harus menghitung exact body lenght untuk header dari
mandatory content-length. Untuk memanipulasi beberapa parameter values dengan
menggunakan browser, penyerang harus menyimpan HTML source ke disk, lalu
memodifikasinya, dan kemudian me-reload-nya kembali ke browser.

* Memanfaatkan HTTP Authorization pada semua content dari situs.

Ini merupakan metoda sederhana yang akan bekerja dengan baik melawan worm-worm
internet, simple CGI scanner, dan akan berdampak pada tool-tool raw-mode
interface. Server benar-benar akan menolak beberapa request yang tidak otentik.
Untuk mengizinkan user anonim untuk bekerja pada situs, mungkin dapat dilakukan
dengan cara mengeluarkan halaman entry point dari skema ini dan menulis user name
dan password pada situs yang lainnya. Dengan kata lain ini mempunyai efek pada
tool-tool sederhana. Semua tool yang tidak didukung otentikasi tidak akan bekerja
pada situs ini. Termasuk worm-worm internet dan simple CGI scanner. Penyerang akan
membutuhkan suatu data otentikasi HTTP pada setiap usaha penyerangannya. Ketika
menggunakan tool-tool URL interface-mode, penyerang harus men-set parameter-
parameter otentikasi HTTP ke nilai yang harus digunakan pada situs.

* �Menendang� para klien keluar dari aplikasi ketika terjadi error.

User-user reguler biasanya tidak membuat banyak kesalahan, setidak-tidaknya pada


sesi yang sama. Jika sebuah situs mempunyai sebuah konsep aplikasi, dan jika klien
dibutuhkan untuk melewati beberapa step untuk memperoleh sebuah sesi, maka mungkin
saja terjadi upaya untuk memperoleh sesi yang invalid atau tidak syah dan ini bisa
dideteksi sebagai sebuah serangan. Penyerang akan melakukan beberapa percobaan
untuk memperoleh sebuah sesi selama beberapa kali, ketika ini terjadi maka sistem
akan bekerja dan akan secara otomatis menolaknya untuk memasuki sebuah aplikasi

You might also like