Kembali lagi ke daffa.info, di hari yang sama, saya membuat post mengenai GET dan POST pada serangan XSS, hari ini kita lanjut dengan tipe-tipe penyerangan XSS. Di post ini saya akan membahas serangan XSS lebih lanjut, yaitu tipe-tipe serangan XSS terdapat 3 tipe XSS. Apa saja? Yuk dibaca dibawah.

XSS merupakan salah satu jenis serangan injeksi code (code injection attack). XSS dilakukan oleh penyerang dengan cara menyisipkan kode HTML atau script ke suatu situs. Akibat serangan ini antara lain penyerang dapat mem-bypass keamanan di sisi klien, mendapatkan informasi sensitif, atau menyimpan aplikasi berbahaya.

Salah satu payload xss yang sering digunakan yaitu

<script>alert(1)</script>

Serangan XSS ini dibagi menjadi 3 yaitu reflected/non-persistent, stored/persistent, dan dom based xss. Saya akan membahas lagi lebih dalam ketiganya

  • Reflected XSS (Non Persistent)

Dari kata Reflected yang berarti Refleksi bisa disimpulkan seperti ini, semisal ada website fitur search dan kemudian saya search dengan kata “barangku”

example.com/search?q=barangku

Kemudian saya masukkan payload xss, sehingga menjadi

example.com/search?q=<script>alert(1)</script>

Dan muncul alert dengan tulisan 1. Kemudian cek source code dengan pencet CTRL + U kemudian search <script>alert(1)</script> dan masuk kedalam source code dan ternyata terdapat line berisi payload XSS tersebut bisa dipastikan itu adalah reflected XSS

Perbedaan dengan DOM Based XSS Apa? nanti saya akan beritahu dibawah post ini, stay baca sampai habis.

  • Stored XSS (Persistent)

Stored yang dalam bahasa indonesia artinya “Tersimpan” Bisa diartikan bahwa payload XSS tersimpan kedalam server. Maksutnya begini, Terdapat website yang di user dashboardnya terdapat fitur edit nama, kemudian anda suntikkan payload XSS <script>alert(1)</script>. Anda Save dan muncul alert. Kemudian misalkan website tersebut anda tutup. Dan anda buka lagi pasti akan muncul alert lagi karena payload XSS yang anda submit tersimpan selamanya di server. Kecuali anda edit lagi atau admin menghilangkan payload tersebut barulah hilang.

  • DOM Based XSS

DOM(Document Object Model) adalah model data standar. DOM adalah cara javascript melihat suatu halaman html.

Serangan XSS ini di mana payload serangan dijalankan sebagai hasil dari memodifikasi DOM ​​di browser korban yang digunakan oleh script sisi klien asli, sehingga kode sisi klien berjalan dengan cara “tak terduga”. Yaitu, halaman itu sendiri (response HTTP yang ada) tidak berubah, tetapi kode sisi klien yang terkandung dalam halaman dieksekusi secara berbeda karena modifikasi berbahaya yang telah terjadi di DOM.

Contohnya ada website bisa berganti-ganti bahas dari bahasa inggris ke bahasa indonesia dan lain-lain dengan parameter “lang”

https://example.com/?lang=en

Kemudian penyerang mengganti “en” menjadi payload xss, sehingga menjadi seperti ini

https://example.com/?lang=<script>alert(1)</script>

Dan muncul alert xss

Perbedaan DOM Based XSS dengan Reflected XSS itu apa?

Biasanya terlihat pada HTTP Responsenya, Contohnya seperti ini

XSS
Reflected XSS
DOM Based XSS

Terlihat perbedaannya bukan? Pada DOM Based XSS tidak terdapat Payload XSS nya sedangkan pada Reflected XSS terdapat payload XSS

Sekian post kali ini, terima kasih 🙂

Sumber:
https://www.owasp.org/index.php/DOM_Based_XSS
https://littlemaninmyhead.wordpress.com/2018/06/24/demonstrating-reflected-versus-dom-based-xss/