Cross Site Scripting

Penulis: Ahmad Syaikhoni, Aris Ariyadi, David Alfa Sunarna

Pembimbing: Nico Surantha

Beberapa orang yang berpengalaman dengan IT Security mungkin sudah mengenal dengan beberapa hal yang disebut sebagai resiko keamanan pada aplikasi. Berdasarkan yang dipaparkan dalam penjelasan suatu website yang mengulas mengenai keamanan dalam teknologi informasi, OWASP, dijelaskan terdapat 10 jenis resiko keamanan aplikasi web yang paling kritis. Salah satunya adalah Cross Site Scripting.  Cross site Scripting atau biasa di sebut XSS merupakan  serangan berupa code injection yang menanamkan kode/skrip berbahaya di website yang terpecaya atau tidak tergolong malicious website, Cross site scripting memanfaatkan kerentanan pada aplikasi  web berupa input dan output yang tidak di validasi atau dikodekan

 

Injeksi script

Cross site scripting mengunakan aplikasi web untuk mengantarkan kode/skrip berbahaya ke browser dari korban karena penyerang tidak bisa langsung menjalankan kode/skrip berbahaya di browser korban. Korban secara tidak sadar akan mendownload kode/skrip berbahaya dan browser akan menjalankan code tersebut, kode/skrip berbahaya bisa terdownload dikarenakan aplikasi web menampilkan user input  tanpa di validasi terlebih dahulu. Penyerang akan masukan string berupa kode kedalam input web app seperti search, form, command dan bahkan posting. Penyerang menggunakan skrip java karena bisa melakukan beberapa tipe serangan seperti: cookie thief , keylogging,  dan phising.

Tipe-tipe serangan cross site scripting

 Ada 2 jenis serangan cross site scripting, yaitu Persistent  dan Non-presistent

  1. Non-persistent , serangan dengan menyisipkan code di input di url. Gambar di bawah menunjukan langkah-langkah serangan non-persistent: Langkah-langkahnya bisa dijabarkan sebagai berikut:
    1. Penyerang membuat URL yang mengandung kode/skrip berbahaya di dalam nya
    2. Penyerang menipu korban agar membuka url tersebut
    3. Website menunjukkan kode/skrip berbahaya dalam response
    4. Browser Korban menjalankan kode/skrip berbahaya dan mengirimkan cookie ke server penyerang

  1. Persistent merupakan serangan dengan menginjeksi kode di dalam database web app. Gambar di bawah menunjukkan proses serangan persistent yang bisa dijabarkan sebagai berikut:
    1. Penyerang membuat kode/skrip berbahaya didalam command input dan mempostnya
    2. Korban mengakses page comment
    3. Website mendisplay kode/skrip berbahaya dalam respons
    4. Browser korban menjalankan kode/skrip berbahaya dan mengirimkan cookie ke server penyerang.

Pencegahan dan pengamanan

Untuk pencegahan  cross site scripting, kita memerlukan validasi dan pengkodean setiap input dari user. Selain itu kita juga harus menvalidasi output dari user input seperti command, posting. Kita bisa juga menggunakan framework pada bahasa pemograman server site  seperti  strip_tags() pada html dan php, OWASP Java HTML Sanitizer Projectpada java dan .net  Selain itu dari sisi user mengunakan anti-malware, internet security, dan latest update browser bisa mencegah untuk mengunjungin situs-situs yang telah terinfeksi cross site scripting.

Video berikut akan menunjukkan demo serangan cross-site scripting

https://youtu.be/2ZKz8Q7ma-8  

 

Nico Surantha