查看源码,可以看到接收了name参数,并直接嵌入到HTML页面中了
没有任何过滤,而且直接会当作代码执行。
0x02 Level 2先传入<script>alert(1)</script>观察一下,发现输入的内容被放在了value的值中,被当作值时是不会执行代码的,所以我们要闭合前面的标签。
用">闭合<input>标签,然后开始一条新的标签语句。
0x03 Level 3首先查看HTML代码闭合前面的标签再写入<script>标签,发现不成功,看起来闭合无效,还是被当作值来解析的。
这是由于源代码中使用了htmlspecialchars()函数对特殊字符进行了HTML实体转义,所以无法发挥字符原来的作用。
既然不能使用<、>这类字符,那么就使用标签的on事件,构造
1' onfocus='alert(1) //通过输入的HTML代码变化,得知这里要使用单引号闭合,执行后点击输入框就会产生弹窗