阅读:3308回复:0
Bypass xss过滤的测试方法
◆0 背景
本文来自于《Modern Web Application Firewalls Fingerprinting and Bypassing XSS Filters》其中的bypass xss过滤的部分,前面有根据WAF特征确定是哪个WAF的测试方法给略过了,重点来看一下后面绕xss的一些基本的测试流程,虽说是绕WAF的,但这里还是根据WAF中的正则缺陷来绕过测试方法,并不是协议上问题,所以呢,基本可以通用于其他xss过滤的场景。方便新手们比较快速的了解到测试xss的一些基本的方法。 ◆1 Bypassing黑名单 大多数的场所是用的黑名单来做过滤器的,有三种方式绕过黑名单的测试: 1、暴力测试(输入大量的payload,看返回结果) 2、根据正则推算 3、利用浏览器bug 初步测试 1)尝试插入比较正常的HTML标签,例如:<b>,<i>,<u>来看一下返回页面的情况是怎样的,是否被HTML编码了,或者标签被过滤了。 2)尝试插入不闭合的标签,例如: </pre> 返回结果可以看到双引号被编码了: "> 设置字符集为UTF-32: http://xsst.sinaapp.com/utf-32-1.php?charset=utf-32&v=%E2%88%80%E3%B8%80%E3%B0%80script%E3%B8%80alert(1)%E3%B0%80/script%E3%B8%80 上面这个在IE9及以下版本可以执行成功。 利用0字节绕过: alert(1); alert(1); confirm(0); 在IE9及以下版本有效。 其他等等一系列浏览器特性的XSS可以参考以下文章: http://drops.wooyun.org/tips/147 ◆2 总结 本文主要是一个测试XSS的思路流程,并没有把所有的payload写全,其实也没有人能够写全,只是列了一个大体的框架,大家实际在寻找的过程中可以不断慢慢的根据这种思路补充自己的payload,想必呢,一定会有很大的进步的!~ |
|