第一关
没有任何防范
1 |
|

第二关
可以看到在h2标签这里他将<和>进行了编码,而在输入这个标签中,她是没有被编码的,但是可以看到我们的注入语句被放到了value值当中,这样浏览器是不会执行我们注入的语句的,所以构造闭合思路。
1 |
|
第三关
可以看到内容在input标签中输出了,那么可以尝试闭合input标签的value属性,加上onfocus事件或者onblur事件,onfocus事件会一直弹框。
1 |
|
第四关
发现单引号不能闭合input标签的value属性对应值的引号,所以再加一个双引号来闭合
1 |
|
第五关
on
事件被过滤了,中间加了个_
,换成a标签

1 |
|
第六关
href
属性被过滤了,换成大写或大小写混合

1 |
|
第七关
双写
1 |
|
第八关
只有在属性值的时候可以用编码,Unicode转换成其他编码ASCII

1 |
|
第九关
对http://
可以输出,注释掉就好,并且javascript加了杠,所以转义
1 |
|