Apakah XSS Itu Berbahaya ?

Background

Dari hasil menyimak di beberapa group IT yang saya ikuti banyak sekali yang bertanya-tanya, Apakah XSS itu berbahaya?, Cara upload webshell lewat XSS itu gimana ya gan?, Laporan Bug XSS-ku kok engga ditanggepi sih? Apa karena XSS itu gak berbahaya ya?, Apa karena admin webnya udah anu ?, Ya kurang lebih begitulah pertanyaan yang mencuat, Mari kita bahas bareng-bareng gimana sih karakteristik XSS itu,

Definition

Cross-site scripting is a type of computer security vulnerability typically found in web applications. XSS enables attackers to inject client side scripts into web pages viewed by other users. A cross-site scripting vulnerability may be used by attackers to bypass access controls such as the same-origin policy. –Wikipedia–

Dalam bahasa indonesianya kurang lebih jadi gini, pada celah keamanan XSS penyerang dapat memasukan atau menginputkan tag html yang dirender oleh client (web browser), nah pada tag html ini ada bahasa yang bisa dijalankan yaitu javascript (tag <script>) (check xss payload), jika tidak bisa menjalankan javascript namun html tag tetap berhasil di-render oleh browser maka bug termasuk ke dalam HTML Injection

Confusion

Lalu Apakah XSS itu berbahaya?, Jawabannya adalah Tergantung, iya kek perasaanku :( jika XSS tersebut hanyalah sebuah self-XSS yang maksudnya adalah XSS tersebut hanya valid terhadap user kita sendiri dan tidak mempunyai impact ke user lain, maka bisa dibilang XSS tersebut tidak valid, Nah namun jika XSS tersebut reflected atau stored apalagi bisa sampai untuk steal cookie maka XSS tersebut cukup berbahaya, kenapa?

Reflected XSS

Jika reflected pada parameter get (contoh pada fitur search yang menggunakan method get

web.com/?cari=<script>alert(1337)</script>

maka dalam hal ini bisa digunakan sebagai scam, contoh: kita alurkan seperti ini, penyerang membuat payload javascript untuk mendirect ke web yang telah dibuat sedimikian serupa untuk melakukan scamming, atau membuat form palsu yang mengoverlay halaman asli dan mengirimkan input data dari form palsu tadi ke server penyerang, kurang lebih seperti itu atau ditambah sedikit social engineering -> https://github.com/laztname/xss

Stored XSS

Jika stored maka payload XSS kita yang sekrip sekrip itu tadi bakal disimpan pada database, lalu pada page lain website menampilkan data payload tadi, maka XSS tersebut akan berjalan dengan asumsi website rentan terhadap XSS, oleh karena itu dampak buruk untuk Stored XSS/Overlay ini adalah penyerang dapat mencuri cookie user lain, nah karena penyerang dapet cookies maka si penyerang ini dapat melakukan cookie hijacking, yang berdampak penyerang dapat masuk sebagai user lain tanpa harus mengetahui username atau password tersebut

Other Question

Bisa ngga upload webshell melalui XSS? bisa!, namun alurnya begini

  1. Penyerang menemukan celah XSS pada fitur kontak-admin
  2. Penyerang mengirimkan payload XSS untuk mencuri kue kering admin atau memanipulasi halaman agar admin mau menuliskan username dan passwordnya
  3. Mengirimkan cookies ke server penyerang
  4. Melakukan session hijacking
  5. Berhasil masuk ke dalam dashboard sebagai admin
  6. Nah tinggal recon aja mungkin nemu fitur upload file yang tidak terfilter dengan baik

Lalu kenapa kok Bug XSS jarang ditanggepi? karena kamu kurang ganteng mungkin sih laporan yang kamu buat belum bisa memberikan gambaran ke admin/developer bagaimana berbahayanya XSS itu, kalo bisa dalam laporan vulnerability itu di beri cara untuk mereprocodure, menjelaskan detail terhadap dampak (ini yang sangat penting), lalu rekomendasi yang harus dilakukan, banyak kok writeup laporan vulnerability yang mungkin bisa kamu gunakan sebagai referensi

Mungkin ini saja sih tanggapan dari seorang yang mengandalkan keberuntungan ini, jika ada salah kata atau apalah, mohon dikoreksi, kita sama-sama belajar kok ;) ccciiieeeeee

yes there in no image for this article
untuk pencegahan dari serangan XSS ini bisa dilihat di sini

Changelog:
2018-12-20 - First write
2024-02-11 - Minor change markdown