BugHunting - Reflected XSS Attacks

Published on 29 May 2021 12:00 AM

Intro

Pada tanggal 20 April 2021, saya menemukan website kamus bahasa inggris yang lumayan akurat untuk menerjemahkan sebuah idiom untuk tugas saya. Saya iseng untuk memasukkan karakter double quote ( " ) ke dalam search bar, dan tiba tiba double quote tersebut berubah menjadi teks "null"

https://[REDACTED].org/[PARAMETER]/?q="

Lalu saya membuka source code web tersebut

error

Coba tebak kenapa bisa null? Yaa.. karena object lookupWord berisi double quote dan tidak difilter menjadi " atau %22, itulah yang menyebabkan crash di web nya

Mulai Inject

Nah karena double quote tidak difilter, maka kita bisa sangat mudah memasukkan (atau meng-inject) kode html/js kedalamnya

Coba perhatiin deh, apa yang terjadi kalau kita ketik "} di url (lihat kode dibawah sebagai ilustrasi)

{
...
lookupWord:""}"
}

Bisa ditebak apa yang terjadi? yap, isi dari lookupWord menjadi kosong (" "), dan JSON nya menjadi tertutup berkat kurung kurawal { } :D, tapi masih ada masalah ini, karena masih ada sisa double quote dan kurung kurawal diujung

Inject Html & Javascript Code

Saya hampir buntu disini, tapi saya ingat, saya bisa memasukkan HTML code kedalamnya, inilah payload full nya

"}</script></amp-state></template></div><script>alert(document.domain)</script><!--

error

Result

Hanya ilustrasi

xss

Timeline

  • 23 April 2021 : Report Bug ke CSIRT Universitas
  • 27 April 2021 : Belum mendapatkan balasan, tetapi Bug sudah diperbaiki