在如今的web时代,XSS攻击十分常见,针对xss攻击的防御也有不少,Filter就是一种用来防御xss攻击的最常见的手段,filter通常是采用黑名单的形式或者基于正则表达式来过滤。尽管如此,依然有很多技术可以用来绕过Filter。
基本变形
我们可以先从绕过相对简单的filter开始。根据Filter过滤规则复杂度的不同,绕过的难易程度肯定也不同,这些简单的过滤器还是比较容易绕过的,只要做一些基本的变形即可。
我们用到的大部分技术都是测试XSS漏洞的最简单的payload的变形,就像下面的代码一样。
如果测试的参数存在xss,就会弹框显示1.
Filter肯定会过滤这个payload,不过有时候,我们只要对payload进行一些简单的修改,就能绕过默认的最基础的filter。比如可以尝试在开始的script标签中插入一个空格或者是tab,如下所示:
当然,也可以通过对tab,换行,回车进行编码来绕过,如下所示:
对标签进行大小写也有可能骗过filter,如下:
还有一种方法非常有效,而且通常都能够成功绕过,那就是插入null字节。在xss payload的任何地方插入null字节,有时候可以绕过filter,如下所示:
alert(1)
属性和标签
HTML属性提供了页面上元素的更多信息。当我们查找XSS漏洞时,通常可以利用这些属性来引入script标签&#