Reflected XSS into a JS string with angle brackets and double&single quotes HTML-encoded escape

Link portswigger :https://portswigger.net/web-security/cross-site-scripting/contexts/lab-javascript-string-angle-brackets-double-quotes-encoded-single-quotes-escaped

Description:

This lab contains a reflected cross-site scripting vulnerability in the search query tracking functionality where angle brackets and double are HTML encoded and single quotes are escaped.

To solve this lab, perform a cross-site scripting attack that breaks out of the JavaScript string and calls the alert function.

Proof of concept:

  1. Kirim request pada fitur search dengan input nilai random

  2. Analisa response dan request

    Seperti yang dapat dilihat pada response, hasil inputan atau masukan akan dikembalikan pada blog-header dan juga pada parameter var SearchTerms pada tag <script>

  3. Coba untuk merusak JavaScript tersebut. Coba untuk input "'" pada search

    Setelah menemukan string Anda di DOM, Anda akan melihat bahwa server merespons dengan penambahan garis miring terbalik, ‘\’. Hasil dari penanganan masukan sisi server. Ini adalah ‘escaping’ yang dimaksud judul lab.

  4. Coba untuk input "\'" dan analisa response yang diberikan

  5. Secara efektif, backslash kita akan lolos dari garis miring terbalik server, sehingga hanya menyisakan tanda kutip tunggal untuk mengakhiri string pencarian kita. Coba masukkan payload “'-alert(1)”

  6. Tetap tidak berhasil, single quote dan titik koma yang mencegahnya menjadi kode yang valid. Coba tambahkan “//” di akhir payload.

    Dapat dilihat, (';) telah berhasil dikomentari dan kita dapat melihat pop-up alert

Thanks, Stay Ethical & Happy Hacking! 🍻

Last updated