关于WAF

WAF

WAF(Web Application Firewall,web应用防火墙),现在稍微大一点或者具有安全意识的网站管理都会配备WAF,来防止自己的网站受到攻击,我们就来康康现在的waf有哪些。

WAF分类

  • 软件WAF:以软件形式装在所保护的服务器WAF,由于安装在服务器中,可以接触到服务器内部文件,直接检测服务器是否存在病毒,webshell,文件是否创建,删除,被利用等。
  • 硬件WAF:以硬件形式部署在链路中,当串联到链路中可以拦截恶意流量,在旁路监听模式时只记录攻击而不拦截
  • 云WAF:一般是反向代理的形式工作,通过配置NS记录,让对网站的请求数据先经过WAF主机,经过审核验证过的无害数据再发送给网站服务器进行请求,类似带防护功能的CDN。
  • 网站系统内置的WAF:能起到审核防护的内置代码,比如前段JS认证,后端的过滤函数,过滤数据库查询语句的代码,对前端输入的参数合法性进行判断。

 

 测试是否存在WAF

在渗透测试中,如果触发了WAF保护机制,轻则就是警告,重则就是直接拉黑IP,拒绝访问 。在手工测试一个网站是否存在WAF,直接丢一个单引号,或者输入union select查询等语句,大部分都会直接拒绝访问,提示存在非法参数

也可以依靠工具进行探测,SQLMAP中的自带的WAF识别模块可以识别出WAF的种类,但是如果安装的WAF没有什么特征,SQLMAP就只能识别出类型是Generic。

SQLMAP的命令:sqlmap -u “http://bank.com” --identify -waf --batch,引用谢公子图片

 现在市面上的很多WAF是依靠正则表达式匹配,就是会匹配已知的漏洞信息来判断客户的请求有没有符合以往已知漏洞信息。他们这样的WAF会有一个规则库储备,比如union select ,delete的数据库语句,或者XSS的代码注入类。

WAF的绕过

结合很多博客主的方法和查询得到的资料,只有在WAF解析数据包请求时,或者WAF匹配规则时候进行绕过。

  • 对于具有云WAF的网站,只要能找到网站的真实ip地址,然后直接通过ip进行访问就可以绕过云WAF的检测,在寻找真实IP上在信息收集里面也有提及到。比如寻找网站的历史NS记录,或者寻找网站的二级域名NS记录的ip,或者最直接的直接订阅网站邮箱,邮箱会直接查出来真实的网站ip地址。
  • cookie注入,在一次程序获取参数中,应用程序会依次从GET/POST/cookie中提取参数,如果WAF只检测了GET/POST而没有检测cookie,那就可以直接依靠burp在cookie中进行注入,在sql注入中有提到过
  • 转换编码,很少很少的WAF不会对普通字符进行转码,比如将注入语句转换成BASE64编码,
  • 替换关键字,如果WAF直接过滤掉union selecet这些危险字符,那就可以这样来写, ununionion seselectlect来进行注入,如果WAF只匹配一次就可以绕过,
  • 大小写混合,union select改为UnIon SELect
  • 使用注释,/*任意*/,使用注释来代替空格
  • 使用生僻函数,在报错注入中使用polyon()代替常用的updatexml()函数

总的来说,绕WAF可以从两个大的层面来考虑。一是通过HTTP协议层面,二是通过WAF对数据包的正则匹配层面。通过对这两个层面细致的研究,还可以发现更多的绕WAF的方法。当然我们必须要了解WAF的工作流程,以后的WAF会逐渐更加强大,流程会更加层层保护。

发布了17 篇原创文章 · 获赞 21 · 访问量 7356

猜你喜欢

转载自blog.csdn.net/qq_44040833/article/details/104196386