[TOC]

0x00 简介

WAF的绕过我们无非就是利用WEB程序缺陷,容器特性,网络协议,数据库特性来组合利用绕过,从用户发出请求到数据库的每一点,寻找突破口。# 0x01 常见的手段

  1. HTTP协议
  2. 大小混写
  3. 替换
  4. 使用特殊字符
  5. 使用编码
  6. 等价替换
  7. 容器特性
  8. 白名单
  9. 缓冲溢出 等等### HTTP协议 HTTP协议中有很多功能,一般来说我们可以用到的就是编码功能,后来有大佬发现了分块传入来绕过WAF,具体大家可以百度看看,大概http协议我们可以总结如下。
  10. 构造畸形数据包
  11. 编码
  12. 分块
  13. 数据包溢出 可能有些表述有误,但是大概意思如此,构造畸形数据包的原理是http协议是有一定的容错性的,我们也常用这个容错性去绕过上传。编码绕过的原理也是利用程序解密,而waf识别不了,数据包溢出则是数据包过大waf自动丢弃不识别### 大小混写 大小混写一般是绕过一些简单的正则 ,对大小写敏感的。UnIon SlEct ### 替换 这种一般是因为正则吧我们的关键词给替换删除了,但是没有进行多次匹配导致绕过ununionion seselectlect

un//ion se//lect### 特殊字符 特殊符号也多是数据库的特性,利用数据库可以使用多种符号来绕过,多种的运算符updatexml

and!!!1=1

/**/

/!50000/### 使用编码 这里和http协议差不多,多重编码等等,url编码会自己解码一次,但是有的程序他可以自己多次解密,那么我们就可以拿来利用 还有的程序参数他是支持base64的 那么我们的payload就可以编码绕过了= -> %3D ->%25%33%44

and 1=1 -> YW5kIDE9MQ==### 等价替换 mysql众多的函数也我们的bypass带来了很对便利,比如一个分割字符串的函数都是几个,倘若被过滤一个可以换成其他的substr(version(),1,1) Substring(version(),1,1) Left(version(),1)### 容器特性

  1. iis 容器的特性给我们绕过非常的有帮助,感谢那些善于发现的师傅们。iis+asp 的%特性:当传入的 s%e%l%e%c%t 函数被%分割时,解析出来还是select iis+asp 的unicode特性 : iis支持Unicode的解析 我们传入s%u0065lect解析为select

    +——————————————————————————————————+ | Keywords | WAF | ASP/ASP.NET | +——————————————————————————————————+ | sele%ct fr%om.. | sele%ct fr%om.. | select * from.. | | ;dr%op ta%ble xxx | ;dr%op ta%ble xxx | ;drop table xxx | | | |