WAF介绍及常见绕过方法

原文地址:https://www.cluren.xyz/2019/10/23/waf/

一、WAF简介

WAF(WebApplicationFirewall)也称:网站应用级入侵防御系统,是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

1.工作原理

对web应用程序客户端发出的流量进行内容检测和验证,检测其安全性与合法性,来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。

2.WAF分类

软件型WAF

以软件形式装在所保护的服务器上的WAF,由于安装在服务器上,所以可以接触到服务器上的文件,直接检测服务器上是否存在WebShell是否有文件被创建等。代表性的产品有:安全狗,D盾。

硬件型WAF

以硬件形式部署再链路中,支持多种部署方式,当串联到链路中时可以拦截恶意流量,在旁路监听模式时只记录攻击不进行拦截。代表性的产品有:nsfocus, imperva硬件。

云WAF

一般以反向代理的形式工作,通过配置NS记录或CNAME记录,使对网站的请求报文优先经过WAF主机,经过WAF主机过滤后,将认为无害的请求报文再发生给实际网站服务器进行请求,可以说是戴防护功能的CDN。代表性的产品有:百度云加速,阿里云云盾。

网站系统内置的WAF

网站系统内置的WAF也可以说是网站系统中内置的过滤,直接镶嵌在代码中,相对来说自由度高一般有以下这几种情况。

  • 输入参数强制类型转换(intval等)。
  • 输入参数合法性检测。
  • 关键函数执行(SQL执行、页面显示、命令执行等)前,对经过流程的输入进行检测。
  • 对输入的数据进行替换过滤后再继续执行代码流程(转义/替换掉特殊字符等)。

网站系统内置的WAF与业务更加锲合,在对安全与业务都比较了解的情况下,可以更少的收到误报与漏报。

二、一些WAF绕过方法(以注入为主)

1.大小写绕过

比如waf拦截union select,可以构造Union sElEcT来绕过。

2.特殊字符替换空格或注释绕过

可以用注释来替代空格进行绕过,有些waf在检测时不会识别注释或者将注释替换掉,如sqlserver中可以用/**/代替空格,在mysql中 %0a 是换行,可以代替空格。
union select 1,2可转换为union/*xx*/select/*xx*/1,2

3.编码绕过

少数waf不会对普通字符进行URL解码,还有一部分waf只会进行一次url解码,所以可以对payload进行二次url编码。常见的SQL编码有unicode、HEX、URL、ascll、base64等,XSS编码有:HTML、URL、ASCII、JS编码、base64等等。
union select 1,2可对其进行url编码后进行绕过waf。

4.关键字替换绕过

有些WAF会删除或者替换关键字,如遇到select union等敏感字词。
union select 1,2,3可替换为ununionion selselectect 1,,2,3

5.多请求拆分绕过

对于多个参数的语句,可以将注入语句分割插入。
如这样的请求:?a=[inputa]&b=[inputb]可将参数a和b拼接如:and a=[inputa] and b=[inputb]

6.利用cookies绕过

对于用了$_REQUEST来获取参数的网站可以尝试将payload放在cookie中进行绕过REQUEST会依次从GET POST cookie中获取参数,如果WAF只检测了GET/POST而没有检测cookie,可以将语句放在cookie中进行绕过。

7.云WAF绕过之寻找网站源ip

采用云WAF的网站可以寻找网站真实ip来绕过云WAF的检测。
常见方法有:

  • 采用多地ping的方法查看ip地址解析分析真实ip
    在线ping网站有:
    http://ping.chinaz.com/
    http://ping.aizhan.com/
    http://ce.cloud.360.cn/
  • 使用 nslookup 进行检测,原理同上。
  • 寻找网站历史解析记录。
  • 找网站的二级域名、NS、MX记录等对应的ip。
  • 订阅网站邮件,查看邮件发送方的ip。

参考:《WEB渗透测试实战指南》

  • 12
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值