WAF(Web应用防火墙)是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。通俗来说就是WAF产品里集成了一定的检测规则,会对每个请求的内容根据生成的规则进行检测并对不符合安全规则的作出对应的防御处理,从而保证Web应用的安全性与合法性。
以下是一些绕过WAF的方法:
**1.各种编码绕过:**使用各种编码进行绕过,例如URL编码、Unicode编码、HTML实体编码等。这种方法的前提是,提交的编码后的参数内容在进入数据库查询语句之前会有相关的解码代码。
**2.字母大小写转换绕过:**某些WAF只过滤全大写或全小写的敏感字符,但未对大小写混用进行过滤。因此,可以对关键字进行大小写转换进行绕过,例如将"sleep"改写成"sleeP"或"slEEp"。
**3.空格过滤绕过:**部分WAF会对空格进行过滤,可以使用空白符或者’+'号替换空格进行绕过。
**4.双关键字绕过:**某些WAF只对关键字进行一次过滤处理,可使用双关键字绕过。例如,WAF可能会过滤"SELECT",但不会过滤"SEL"+“ECT”,通过拆分关键字,可以绕过过滤机制。
**5.内联注释绕过:**在攻击载荷中使用内联注释(如MySQL的"–+")来绕过WAF的检测。这样的注释可以使WAF在解析SQL语句时误认为注释之后的部分无效,从而绕过检测。
**6.请求方式差异规则松懈性绕过:**某些WAF可能对不同请求方式(GET、POST、PUT等)的处理规则不一致。通过变换请求方式,可以绕过WAF的特定规则。
**7.异常Method绕过:**WAF通常会过滤并阻止一些非常规的HTTP方法,如"TRACE"、"OPTIONS"等。然而,某些情况下,这些非标准的方法可能没有被严格限制,可以利用这一点来绕过WAF。
**8.超大数据包绕过:**WAF通常有数据包大小的限制,旨在防止大型攻击载荷。通过发送超大的数据包,可能会使WAF在处理时耗尽资源或发生错误,从而绕过其检测和保护机制。
**9.随机化请求绕过:**改变请求头、cookie、User-Agent 等信息,每次请求时进行随机选择,从而避免被WAF识别为恶意请求。这可以使攻击者更具隐蔽性,并增加WAF的检测复杂度。
**10.分段传输绕过:**将请求分成多个小块进行传输,以混淆和绕过WAF的检测。攻击者可以使用分块传输来逃避WAF对请求长度或特定标记的规则检测。
**11.IP伪造绕过:**通过伪装自己的源IP地址来绕过WAF的防御机制。攻击者可以设置任意源IP地址,使得WAF无法正确追踪和过滤恶意请求。
更多内容,请关注公粽号:六便士IT