参考了xss-labs靶场实战全通关详细过程(xss靶场详解)-CSDN博客
后来这个要钱了,看了:xss-labs通关全详解-CSDN博客
第一关
直接name后拼接JS语句
第二关
看源码,闭合value即可,之前polar做过类似的题目

第三关
这下value里面的也过滤了,我们试着别的打法。
了解到onfocus+JS伪协议可以绕过实体化
payload:
' οnfοcus=javascript:alert(1)'
引号是为了闭合
第四关
双写绕过也不行!但是可以用第三关思路
看源码的话就是给<>删除了
第五关
貌似是有下划线,但是只是过滤了on和script。可以用其他标签比如a+JS伪协议来进行操作

还是先闭合前方语句即可,payload:"><a href=javascript:alert() /a>(经过测试后方标签无影响)但我这写法肯定不标准

第六关
看源码基本我能想到的伪协议都被过滤掉了

这真的是没见过了,
搞了半天是大小写绕过,没有小写字母转换函数
paylaod:
"><sCript>alert(1)</scrIpt>(大写I和C)
第七关
看到替换为空字符果断选择双写绕过
payload:"><scripscriptt>alert(1)</scripscriptt>
第八关
好多东西都被替换

这里学到了href的隐藏属性自动Unicode 解码
第九关
这里用上一关的办法行不通了,因为添加一个http头校验,手工加上的话是不符合弹窗语法规则的
其实只需要在后面注释掉http头不让他影响我们执行就好了!
第十关
看源码有隐藏参数传递

让值等于一个点击事件,type覆盖一下就好了
?t_sort="onfocus=javascript:alert() type="text"><"
第十一关
有一个新的属性refer,我们可用这个属性,和上一题一样的payload即可
第十二关
这一题是UA,payload是上一关的payload
第十三关
这一题是cookie,payload是上一关的payload
第十四关
里面是一个iframe标签
原思路是用img的exif属性进行注入恶意js语句,可惜原网站闭站了,因此这一关过不去了
第十五关
属性有一个:ng-include:
ng-include 属性的值可以是一个表达式,返回一个文件名,默认情况下,包含的文件需要包含在同一个域名下。
看源码是src变量传进来的
第十六关
有一个是keywords传参
空格可以用回车来代替绕过,回车的url编码是%0a
这一关用svg标签绕过