Professional Documents
Culture Documents
Disusun Oleh
Agung Mujadid
1101168572
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.
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.
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.
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.
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/