SRC

4. 有意思的xss之组合参数bypass

Posted by HWHXY Blog on December 6, 2018

前言

该篇记录为记录实际的src过程第4篇小文章,内容为某网站的xssbypass。

XSS特征

存在多个输入点,其中有三个参数没有过滤<>,进行xss bypass,发现:
任意一个参数都过滤了<script>,<iframe>,<input>,<a href>,等,进行bypass都失败了,这时候就想着组合bypass,因为在观察waf过程中发现只要以<>闭合,就几乎不可能,就连style也过滤了。

组合bypass

输入的点:a=1&b=1&c=1,
输出的点:{"a":"1","b":"1","c":"1"}
如果我们构成a=<svg&b=>,则最后输出:{"a":"<svg","b":">","c":"1"} 可以注意到已经闭合了<svg>了,那么我们来思考怎么利用。 a=<svg onload=xx&b=>这样的方式会被waf,但是如果我们这样,a=<svg &b=onload=xx>是可以保留on属性的,那最后会输出,那中间有脏数据,实际上还是执行不了,这时候就会想着把脏数据放到属性里面当作str就行了,这样做a=<svg value='&b=' onload=xx>,那么最后就会得到{"a":"<svg value='","b":"' onload=alert(1)>","c":"1"},因为对于waf而言,识别不出这种差异性,最后成功bypass