You are on page 1of 10

APPLICATION ATTACK

CROSS SITE REQUEST FORSERY & CROSS SITE SCRIPTING

Disusun Oleh
Agung Mujadid
1101168572

Diajukan sebagai Tugas CLO 2 Mata Kuliah Keamanan Jaringan

Program Studi Teknik Telekomunikasi


Jurusan Teknik Elektro
Telkom University
2017
A. Pengertian CSRF
Cross-Site Request Forgery (CSRF) adalah sebuah serangan yang memaksa
pengguna untuk mengeksekusi tindakan yang tidak diinginkan oleh mereka sendiri
pada web browser. Serangan CSRF secara khusus menargetkan perubahan
permintaan, bukan pencurian data, karena penyerang tidak memiliki cara untuk
melihat korban. Dengan sedikit bantuan dari rekayasa sosial (seperti mengirim link
melalui email atau chat), penyerang dapat mengelabui pengguna dari aplikasi web ke
dalam melaksanakan tindakan yang diinginkan penyerang. Jika korban adalah user
biasa, serangan CSRF sukses dapat memaksa pengguna untuk melakukan permintaan
mengubah data seperti mentransfer uang, mengubah alamat email mereka, dan
sebagainya. Jika korban adalah administrasi, CSRF dapat membahayakan seluruh
aplikasi web tersebut.

Gambar 1. CSRF bekerja

Contoh serangannya :

1
Katakanlah terdapat sebuah situs transaksi pulsa eletrik, Si A merupakan salah
satu membernya, dan memiliki deposit yang cukup untuk bertransaksi. Untuk
melakukan transaksi, situs harus menggunakan pengguna login terlebih
dahulu, lalu transaksi terjadi dengan mengakses link
HTTP://domain/transaksi.php?no-hpxxxxxxnilai-pulsa=100000, isi dari
field no hp adalah no handphone tujuan yang ingin diisi ulang dengan pulsa
senilai Rp 100.000. Tentunya pengembang situs tersebut telah memproteksi
link ini agar hanya dapat diakses oleh member yang telah berhasil login. Si B
merupakan tokoh antagonis, ia mengetahui cara kerja situs tersebut, ia juga
menemukan bahwa situs itu memiliki fitur yang menyimpan otentifikasi
member dalam jangka waktu tertentu (menggunakan session/cookies). Selama
masih valid pengguna dapat masuk tanpa perlu login dan memasukan
password lagi. Anda tentu mengetahui banyak situs memberikan
pilihanremember me atau keep me logged in bagi pengguna bukan? Si B
(Penyerang) lalu mengirimkan email kepada si A (korban) berisi
link HTTP://domain/transaksi.php?no-hpxxxxxxnilai-pulsa=100000,
dimana field no_hp berisi nomor handphone si B ini disamarkan dengan
teknik tertentu dan seolah-olah merupakan link yang menarik. Apa yang
terjadi jika si A lengah mengklik link tersebut? jika cookie valid/tidak ekpired,
transaksi tersebut akan terisi atas otoritas si A (sebagai pihak login) hasilnya si
B menikmati pulsa gratis senilai Rp 100.000.

B. Pengertian Cross Site Scripting


XSS (Cross Site Scripting) merupakan salah satu jenis serangan injeksi
code (code injection attack). XSS dilakukan oleh penyerang dengan cara
memasukkan kode HTML atau client script code lainnya ke suatu situs.
Serangan ini akan seolah-olah datang dari situs tersebut. Akibat serangan ini
antara lain penyerang dapat mem-bypass keamanan di sisi klien, mendapatkan
informasi sensitif, atau menyimpan aplikasi berbahaya. Alasan kependekan

2
yang digunakan XSS bukan CSS karena CSS sudah digunakan untuk cascade
style sheet.. Berikut ini adalah penjelasan mengenai tipe XSS :
1. Reflected XSS merupakan tipe XSS yang paling umum dan yang paling
mudah dilakukan oleh penyerang. Penyerang menggunakan social
engineering agar tautan dengan kode berbahaya ini diklik oleh pengguna.
Dengan cara ini penyerang bisa mendapatkan cookie pengguna yang bisa
digunakan selanjutnya untuk membajak session pengguna. Mekanisme
pertahanan menghadapi serangan ini adalah dengan melakukan validasi
input sebelum menampilkan data apapun yang di-generate oleh pengguna.
Jangan percayai apapun data yang dikirim oleh pengguna. Namun pada
XSS jenis ini hanya bersifat sementara (tidak permanen), jadi setelah
pengguna me-reload situs maka akan kembali seperti semula.
Contoh penyerangan menggunakan XSS :
Toni sering mengunjungi website Jack, yang di website
tersebut memungkinkan toni untuk memasukan
username/password dan menyimpan data pribadi atau data
transaksi yang seharusnya tidak boleh diketahui orang lain.
Rey mengetahui bahwa toni sering mengunjungi web tersebut,
dan lalu mengamati jika di website buatan Jack terdapat
kerentanan atau celah yang bisa diserang menggunakan XSS.
Rey lalu mengekplore dan mencoba mencari celahnya dan
membuat script berbahaya dan kemudian di embed atau
dimasukan ke dalam sbuah URL
Rey lalu mengirim email ke toni yang berisi link ke halaman
web Jack yang sebenernya urlnya sudah di embed script yang
berbahaya tersebut, serta merayunya dengan alasan palsu atau
sejenisnya.
Saat Toni click URL tersebut maka toni akan masuk ke dalam
website Jack serta script yang sudah Rey buat akan
dijalankan, sehingga Rey bisa mengmbil data dari cookie nya
dan bisa memanfaatkanya.

3
Proses nya : Sisipkan script HTML, Javascript, VBscript, Active
X, atau Flash pada bagian link URL alamat situs tersebut. Contoh :
HTTP://vulnerableweb.com/index.php?search=[script_XSS]
2. Stored XSS lebih jarang ditemui dan dampak serangannya lebih besar.
Sebuah serangan stored XSS dapat berakibat pada seluruh pengguna.
Stored XSS terjadi saat pengguna diizinkan untuk memasukkan data yang
akan ditampilkan kembali. Contohnya adalah pada message board, buku
tamu, dll. Penyerang memasukkan kode HTML atau client script code
lainnya pada posting mereka. XSS permanen (stored XSS) adalah
perubahan tampilan yang masih ada meskipun halaman di reload maupun
halaman tersebut diakses oleh user lain.

Gambar 4. Proses kerja Stored XSS


3. DOM Based XSS berarti Cross-site scripting kerentanan yang muncul di
DOM (Document Object Model) bukan bagian dari HTML. Dalam
serangan scripting Cross-site reflected dan stored anda dapat melihat
payload di halaman respon tetapi dalam DOM cross-site berbasis
scripting, kode sumber HTML dan respon dari serangan akan persis sama,
yaitu payload tidak dapat ditemukan di responnya. Ini hanya dapat diamati
pada runtime atau dengan menyelidiki DOM pada halaman tersebut..

4
Halaman HTML statis, dan tidak ada script berbahaya tertanam ke
dalam halaman, seperti dalam kasus jenis lain dari serangan XSS.
Salah satu perbedaan terbesar antara XSS Berbasis DOM dan Stored
XSS adalah bahwa XSS Berbasis DOM tidak dapat dihentikan oleh
filter server-side. Alasannya cukup sederhana, apa pun yang ditulis
setelah "#" (hash) tidak akan dikirim ke server.

Gambar 5. Dom Based XSS bekerja

C. Perbedaan CSRF dan XSS

5
1. XSS melakukan injeksi script pada sisi client dalam penyerangannya
sedangkan CSRF melakkan phising terhadap calon korban.
2. Situs web yang rentan dengan serangan XSS akan rentan terhadap
serangan CSRF.
3. Situs web yang benar-benar terlindungi dari serangan XSS, masih rentan
terhadap serangan CSRF.

D. PENCEGAHAN
1. Pencegahan CSRF
Server Side Protection
Untuk meminimalkan bisa dengan cara memberlakukan
pemeriksaan HTTP referer, menetapkan waktu session yang
singkat (misalnya 8 menit), atau memaksa regenerate session
(login kembali/input CAPTCHA) untuk aksi penting di situs seperti
beli barang atau ganti password.
Memeriksa HTTP referer bisa mencegah CSRF melalui e-mail
namun tidak bila pengguna aktif dengan web browsernya. HTTP
referer juga bisa dipalsukan sehingga cara ini hanya
memperlambat. Cara lain yang sederhana tapi cukup efektif adalah
memberlakukan token unique per session yang disimpan di
database. Permasalahannya, penyimpanan secret token ini akan
memberatkan server terutama saat banyak orang mengakses secara
bersamaan. Namun apabila disimpan dalam bentuk cookie di web
browser maka penyerang akan mencoba memanfaatkan kelemahan
XSS untuk mencurinya. Situs web yang rentan XSS akan
melahirkan ancaman CSRF. Oleh karena itu amankan situs dari
kelemahan XSS terlebih dahulu.

Client Side Protection


Jangan mengandalkan fitur Remember Me dalam memakai
layanan di internet. Jangan menampilkan e-mail dalam format
HTML bila anda menggunakan e-mail client. Jangan menyimpan
password dalam web browser, apapun alasannya! Selalu logout

6
dari situs web setelah selesai menggunakan layanannya dan hapus
semua jejak (history, saved password, cookies dan authenticated
sessions) di browser. Bukalah 1 tab browser dalam satu waktu bila
melakukan transaksi keuangan atau layanan penting lainnya dan
jangan tergoda untuk multi-tab browsing situs lain bersamaan.
Ingatlah bahwa Keamanan selalu berbanding terbalik dengan
kenyamanan.

2. Pencegahan XSS
Server Side Protection
1. Membatasi respon server
Dimungkinkan untuk membatasi jumlah personalised data yang
dikirim ke browser klien melalui penggunaan respon. Sebagai
contoh, sebuah situs yang menampilkan sapaan pada user saat
pertama kali login sebagai response dari
HTTP://trusted.org/greeting.jsp?name=User, demi
pertimbangan keamanan, perlu untuk mengorbankan respon
dinamis seperti HTTP://trusted.org/greeting.jsp?name=User ke
dalam bentuk hard code.
2. Membatasi panjang respon string
Bagi aplikasi utama, pengembang seharusnya dapat membatasi
panjang maksimum string yang dikirim oleh user, walaupun
awalnya dipaksakan di sisi klien, pasokan string tersebut juga
harus diperiksa di sisi server, dimana sangat memungkinkan
ditegakkannya batas maksimum panjang string yang
dilewatkan pada satu response.
3. HTTP referer
Memanfaatkan standar HTTP dengan menggunakan bagian
field header referer, ketika klien browser mengikuti sebuah
link atau mengirimkan data. Isi referer harus berisi URL dari
halaman sumber data, ini memungkinkan aplikasi web untuk
memeriksa field referer dan menolak jika bukan berasal dari
sumber host yang sesungguhnya.

7
4. Inspeksi cookie
Dengan banyaknya aplikasi yang memanfaatkan cookies dalam
mengelola kondisi komunikasi, pengembang aplikasi
seharusnya telah memastikan bahwa cookie yang disisipkan
dalam dokumen, telah diperiksa dan dipisah.

Referensi

[1] HTTPs://www.herugan.com/serangan-cross-site-request-forgery-CSRF-pada-
website.

[2] HTTPs://hayungku.wordpress.com/2012/05/28/XSS-cross-site-scripting/

[3] HTTP://kamaruddin.jajanmedan.com/2008/02/25/cross-site-request-forgery-
CSRF/

[4] HTTPs://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

[5] HTTPs://www.incapsula.com/web-application-security/cross-site-scripting-
XSS-attacks.HTML

[6] HTTPs://upyes.wordpress.com/2013/05/18/pengertian-XSS/

[7] HTTPs://jenuardalapang.wordpress.com/2012/10/26/tutorial-XSS-attack/

[8] HTTP://metasplo1dteam.blogspot.co.id/2015/01/XSS-cross-site-

8
scripting.HTML

[9] HTTP://ezine.echo.or.id/ezine8/ez-r08-mrt-eksploitasi_web_dg_XSS.txt

[10] HTTP://developers-club.com/posts/189210/

You might also like