如果就是说你提交一个就是8兆的或者说大于这个就是你当前这个服务器端能接受的这个字节的话,那 waf的话他就不会去匹配剩下的一些东西。那这个脚本语言它就根据这个脚本语言,他自己的配置,然后再加上WAF,他认为他能取多少,去匹配了,中间他会可能会造成一些偏差,知道吧?假如我这个服务器配置说只能接收8兆的字节,数据包大小,那么web呢它只处理就是说2兆或者4兆,那我剩下的就是8-2=6,那6项那剩下的6兆也是发送到服务器端的,服务器端它也接收,因为它最大是8兆,对不对?那么剩下的6兆我们可以在里面填充一些就是攻击,那么这个外部它也是拦截不了的,这这些都是以前的老的理论就是。
以前那种他是一般现在你去去用这些方法它是不起作用的,就是完全就可以绕过的,那么现在呢他们这些外部的一些产品就是慢慢的已经很强大了。我们再看就是协议为证据解析,这个是什么?我给大家慢慢讲一下。
为什麽不一样呢?实际上与互联网服务器软件挑选及语言解释程序有关。它结合了Apache和PHP,testfire结合了Tomcat和JSP。在改动站点地址栏技术参数之前。这一方法被称为“技术参数污染”,什么时候它起作用呢?诸如,使用JSP编写的WAF在Tomcat上运行,而使用PHP编写的自己的站点在Apache上运行。接着发生了什么?了解了该架构后,攻击者便会构造出这种的请求:http://191167.117.188/dvwa/漏洞/sqli/2id=1&id=2%20,%201-1%20&submit=submit#,这就是原始请求。
很突出,这条“and1=1”是一个典型的注入攻击语句,但是攻击者合理地把它放在了第2个技术参数以后。假如该请求发送给运行在Tomcat上的WAF,很显然,它将解析第一个技术参数“id=1”,WAF将将将将视此请求为ok;但当将该请求发送给Apache上的服务器时,将解析最后面一个技术参数“id=2and1=1”,以实现注入攻击。