【alert(1) to win】 Level 02 - Adobe



题目

function escape(s) {
  s = s.replace(/"/g, '\\"');
  return '<script>console.log("' + s + '");</script>';
}

解题报告

由于所有 " 都被转义为 \" ,导致无法直接闭合函数。

但是不能直接闭合,不等于无法闭合。

因为只是转义了双引号 " ,没有转义反斜杠 \ ,那么我们只需要再输入一个反斜杠去吃掉转义双引号的反斜杠,那么双引号就得以保留,并用来闭合函数了。

于是可以构造 payload 如下 (此处没有闭合后半段的双引号,而是通过行注释 // 屏蔽掉):

\");alert(1);//


答案下载


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