绕过WAF的方式之编解码技术

outputo-20210607-151912-367-uogj.png

假如攻击者改成在每一个请求中加上数亿个参数呢?NginxLua在解决所有参数时耗费很多CPU和内存,乃至造成 拒绝服务攻击。实际上,参数数目的问题不仅仅存有于应用NginxLua组合的WAF中,也存有于许多其他类型的产品中。攻击者常常对字符数组开展编号以绕开WAF检测机制,这也是1种十分普遍的做法。例如,在HPP技术中,我们提及攻击者应用了这样1个请求:Id=1&id=2%20和%201=1%20&submit-submit#,该请求中应用了编号技术。一样,这种技术也不是肯定有效的,仅仅用以没有完善解码技术的WAF。在具体的攻击性行为中,攻击者会对各种攻击请求开展编号(例如常见的SQL注入或XSS攻击),这一事例我们后边会讲到。

然后第三个就是社工DNS,这个就是比较苛刻了。还有就是cdn节点的分发缺陷,有的是各个有的地方它没有节点会直接指向这个真实IP地址,知道了吧?那么我们拿到这些真实IP地址呢如何绕过这个 CDN就是直接就是来一个那个啥?本地的这个 host,文件修改一下就可以了就是。直接就是把这个数据发送到这个这个服务器上不经过CDN了,这个 CDn它就它的这些防护措施都没有都没有用了,懂了吧?然后就是第二个就是匹配资源大小限制,我们呢就是我们一般在访问网站的时候,大部分都是两种请求,一个是GET,一个是POST的。

Get方法取消的数据长度大小没有限制,只是说是浏览器还限制了你的这个浏览器里面的地址过程,浏览器就是发送不出去了,或者造成一些崩溃等等这些问题。那 waf在处理get请求的时候,他会就是有可能会根据这个客户端的浏览器规定了差不多去匹配,他可能认为就是比如说这个长度是1000个字符1万个字符,浏览器规定的是比如说是500个字符,假设你提交了1000就是1000的字符,剩下500个字符,就是外部它不会去处理了,就他只处理前面500个左右。

就达到了一个攻击效果。还有post,他有没有大小限制?它的这个限制作用就是服务器的处理程序的这个处理能力,可能就是根据这个网络带宽还有服务器的这个硬件硬件配置,还有一些环境的一些优化,对不对?如在这个Php假如进行这个 POST提交的时候,那么这个配配置文件里面它的这个最大的字节,你请求的这个数据大小就是两兆字节。

分享: