20210518 205312 1

Vulnerability : Cross Site Scripting (XSS)

Halo sobat Helixs! Cross Site Scripting Vulnerability atau yang lebih dikenal dengan XSS, sangat sering terjadi pada website. Kerentanan jenis ini banyak yang tidak terlalu berbahaya dan tidak berpengaruh besar terhadap website. Tapi jangan salah sangka dengan penyebutan tidak berbahaya, Cross Site Scripting Vulnerability sering dimanfaatkan penyerang untuk mencuri cookie dari suatu website . Penyerang juga dapat memanfaatkan Cross Site Scripting Vulnerability ini untuk mencuri kredensial suatu pengguna dan bisa saja log in sebagai pengguna tersebut, tentu saja berbahaya dan berdampak besar pada website jika pengguna nya memiliki akses admin. Cross Site Scripting Vulnerability juga dapat di manfaatkan untuk mencuri data data sepert cookie, informasi sensitif seperti data transaksi dan akses login pengguna.

Cross Site Scripting (XSS)

Cross-site Scripting (XSS) adalah serangan code injection, di mana sebuah script dapat disuntikkan ke situs web. Penyerang bertujuan untuk mengeksekusi script berbahaya di browser web korban dengan memasukkan payload di halaman web atau aplikasi web. Bagian rentan yang biasa digunakan untuk serangan Cross site Scripting adalah form, contact page, memungkinkan komentar. Halaman web atau aplikasi web rentan terhadap XSS saat menggunakan input form user yang tidak difilter output yang dihasilkannya.

Tipe Serangan XSS

  • Stored XSS (Persistent XSS)

Jenis XSS yang paling merusak adalah Stored XSS (Persistent XSS). Penyerang menggunakan Stored XSS untuk memasukkan konten berbahaya, paling sering kode JavaScript, ke dalam aplikasi target. Jika tidak ada validasi input, kode berbahaya ini disimpan secara permanen oleh aplikasi web target, misalnya dalam database. Misalnya, penyerang dapat memasukkan script berbahaya ke dalam kolom input pengguna seperti kolom komentar blog atau di posting forum.

Saat korban membuka halaman web yang terpengaruh di browser, muatan serangan XSS disajikan ke browser korban sebagai bagian dari kode HTML. Ini berarti bahwa serangan jenis ini berpengaruh pada seluruh user.

  • Reflected XSS (Non-persistent XSS)

Jenis XSS kedua dan yang paling umum adalah Reflected XSS (Non-persistent XSS). Dalam kasus ini, payload penyerang harus menjadi bagian dari permintaan yang dikirim ke server web. Ini kemudian direfleksikan kembali sedemikian rupa sehingga respons HTTP menyertakan payload dari permintaan HTTP. Muatan XSS Payload yang direfleksikan kemudian dieksekusi di browser pengguna. XSS yang direfleksikan bukanlah serangan yang terus-menerus, jadi penyerang perlu mengirimkan muatan berulang lagi untuk mengeksekusi payload. Serangan ini tidak berdampak besar pad sistem web.

  • DOM-based XSS

XSS berbasis DOM adalah serangan XSS tingkat lanjut. Hal ini dimungkinkan jika skrip sisi klien aplikasi web menulis data yang diberikan oleh pengguna ke Model Objek Dokumen (DOM). Data tersebut kemudian dibaca dari DOM oleh aplikasi web dan dikeluarkan ke browser. Jika data tidak ditangani dengan benar, penyerang dapat memasukkan payload, yang akan disimpan sebagai bagian dari DOM dan dieksekusi saat data dibaca kembali dari DOM

Serangan XSS berbasis DOM sering kali merupakan serangan sisi klien dan muatan berbahaya tidak pernah dikirim ke server. Hal ini membuat lebih sulit untuk di deteksi Web Aplication Firewall (WAF) dan keamanan yang menganalisis log server karena mereka tidak mendeteksi serangan itu. Objek DOM yang paling sering dimanipulasi termasuk URL (document.URL), bagian dari URL (location.hash), dan Perujuk (document.referrer).

Cara Kerja XSS

Untuk menjalankan kode JavaScript berbahaya di browser, penyerang harus terlebih dahulu menemukan cara untuk memasukkan kode berbahaya (muatan) ke dalam halaman web yang dikunjungi.
Agar langkah pertama dapat dilakukan, situs web yang rentan perlu secara langsung memasukkan input pengguna di halamannya. Penyerang kemudian dapat memasukkan string berbahaya yang akan digunakan dalam halaman web dan diperlakukan sebagai kode sumber oleh browser.

Berikut adalah contoh script php yang vuln XSS :

Pada script diatas penyerang dapat menyisipkan XSS payload pada GET query, Sebagai contoh

Code diatas tidak memfilter input dan output yang dimasukkan oleh penyerang, untuk meminimalisir serangan perlu untuk menambahkan fungsi htmlspecialchars atau pregmatch pada input form. Seperti berikut

Payload

Berikut ini adalah berbagai macam payload yang paling sering di pakai untuk mengetes Cross Site Scripting Vulnerability. Terkadang beberapa website perlu di “Bypass” hingga payload berhasil di eksekusi.

<script> tag

Tag <script> adalah muatan XSS yang paling mudah. Tag <script> dapat mereferensikan kode JavaScript eksternal atau Anda dapat menyematkan kode di dalam tag <script> itu sendiri.

JavaScript events

JavaScript event attributes seperti onload dan onerror dapat digunakan di banyak tag berbeda. Ini adalah XSS Payload yang sering dipakai.

<body> tag

Payload XSS dapat dikirim di dalam <body>, dapat digabungkan dengan payload javascript event attributes.

<img> tag

Beberapa browser mengeksekusi javascript pada <img> attributes.

<iframe> and <input> tag

Tag <iframe> memungkinkan Anda menyematkan halaman HTML lain di halaman saat ini. IFrame mungkin berisi JavaScript tetapi JavaScript di IFrame tidak memiliki akses ke DOM halaman induk karena Kebijakan Keamanan Konten (CSP) browser. Pada <input> tag sering terjadi juga serangan XSS, user memanipulasi nya agar dapat mengeksekusi Javascript.

<link>, <meta>, <div>, <style>,<button> and <object> tag

Tag <link> ,sering digunakan untuk menautkan ke external style sheets, penyerang dapat memanipulasi nya dengan mengisi source style sheets dengan script. Teknik ini juga dapat di berlakukan pada tag <meta>. <div> dan <style> kurang lebih sama, penyerang menyisipkan script ke dalam tag ini. <button> biasa digabungkan dengan javascript events attributes seperti onclick. <object> tag mirip dengan <iframe> tag, dengan tag ini penyerang dapat menyisipkan link external yang berisi script.

Other Payload

XSS Bypass

XSS Bypass

Cloudflare XSS Bypasses by @Bohdan Korzhynskyi – 3rd june 2019

Cloudflare XSS Bypass – 22nd march 2019 (by @RakeshMane10)

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
Translate »
0
Would love your thoughts, please comment.x
()
x