记一次input标签中的xss测试,测试步骤如下~
如下所示,可以闭合双引号,但是闭合标签的时候会被实体编码掉,该显示位位于input中,所以需要在input标签中形成xss
输入以上payload后发现均会被过滤掉,结果如下图所示:
进行双写绕过的时候,发现直接把
”>
在特殊符号中不断的测试,发现“as+会被直接清除掉只剩下一个“a”,但是as+aonmouseover=a”,则保留下了“asa”,直接把前后的内容拼接上了。
发现再次双写还是不行,又被清除了;
这时候猜想有两种可能:
1)循环过滤:直接采用循环的方式把内容过滤到没有危险字符了才会进入下一个处理流程
2)多次过滤: 非循环过滤,只是人工写的进行了2次或者2次以上的过滤操作
发现输入三次拼写的时候,成功的绕过了他的过滤,得到了我们想要的输出:“>
"o+aon+aonmouseover=mouseover=nmouseover="alert`1`www.gendan5.com
一开始我输入的alert(1),但是发现会被过滤掉,所以选择了alert`1`
这样的payload需要人为的去点击才能触发,所以后续更新了一下触发方式,使用““autofocus“可以自动触发聚焦,完成xss攻击
"autofocus+onf+aonf+ aonfocus=ocus=ocus="alert`1`" a="
1.采用循环过滤的方式过滤危险方法名
2.或者过滤双引号