什么是WAF
WAF即Web应用防火墙(Web Application Firewall)。
一、功能方面
防护Web应用攻击
防止SQL注入攻击,通过检测和阻止恶意构造的SQL语句进入Web应用数据库。例如,攻击者可能会试图通过在输入框中输入恶意SQL代码来获取数据库敏感信息,WAF能识别并阻止这种行为。
防范跨站脚本攻击(XSS),它会检查输入到Web页面的数据,防止恶意脚本(如JavaScript代码)被注入到网页中,从而避免攻击者在用户浏览器中执行恶意操作,像窃取用户登录凭证等。
访问控制
基于规则对访问Web应用的用户或流量进行控制。可以设置规则允许或拒绝特定IP地址、IP段或者特定用户代理(如浏览器类型等)的访问。例如,企业可以设置只允许公司内部特定IP地址范围的员工访问内部的Web应用系统。
二、工作原理
规则匹配
WAF使用预定义的规则集来检查HTTP/HTTPS流量。这些规则涵盖了各种已知的攻击模式和异常行为特征。例如,对于检测SQL注入攻击,规则可能包括对特定SQL关键字(如“SELECT”“INSERT”等在异常位置的检测)以及特殊字符组合(如“’ OR ‘1’='1”等常见注入尝试)的识别。
行为分析
除了规则匹配,一些先进的WAF还会进行行为分析。它会学习Web应用的正常访问模式,包括用户的访问频率、请求的类型和顺序等。当出现与正常模式明显不同的行为时,如某个IP地址在短时间内对某个页面发起大量的异常请求,WAF可能会将其判定为潜在的攻击行为并进行拦截。
WAF拦截原理:WAF从规则库中匹配敏感字符进行拦截
常见的WAF工具
网站安全狗,宝塔,阿里云云盾
WAF绕过
我的电脑里面没有安装安全狗,我就简单梳理一下,毕竟现在各种的方式基本有已经修复了

关键词大小写绕过
有的WAF因为规则设计的问题,只匹配纯大写或纯小写的字符,对字符大小写混写直接无视,这时,我们可以利用这一点来进行绕过
举例: union select ---> unIOn SeLEcT
编码绕过
针对WAF过滤的字符编码,如使用URL编码,Unicode编码,十六进制编码,Hex编码等.
举例:union select 1,2,3# =union%0aselect 1\u002c2,3%23
双写绕过
部分WAF只对字符串识别一次,删除敏感字段并拼接剩余语句,这时,我们可以通过双写来进行绕过。
举例:UNIunionON ,SELselectECT anandd
换行(\N)绕过
举例:select * from admin where username = \N union select 1,user() from admin
注释符内联注释绕过:
union selecte =/*!union*/ select
注释符里感叹号后面的内容会被mysql执行。
同义词替换
and=&&
or=||
=(等于号)=<、>
空格不能使用=%09,%0a,%0b,%0c,%0d,%20,%a0等
注:%0a是换行也可以替代空格
HTTP参污染
对目标发送多个参数,如果目标没有多参数进行多次过滤,那么WAF对多个参数只会识别其中的一个。
举例:?id=1&id=2&id=3
?id=1/**&id=-1%20union%20select%201,2,3%23*/
总结
WAF绕过的思路就是让WAF的检测规则,识别不到你所输入的敏感字符,利用上述所介绍的知识点,灵活结合各种方法,从而可以增加绕过WAF的可能性,这里指示简单介绍,具体还请大家观看其他大神的文章。
1862

被折叠的 条评论
为什么被折叠?



