0x00 简介
WAF的绕过我们无非就是利用WEB程序缺陷,容器特性,网络协议,数据库特性来组合利用绕过,从用户发出请求到数据库的每一点,寻找突破口。# 0x01 常见的手段
- HTTP协议
- 大小混写
- 替换
- 使用特殊字符
- 使用编码
- 等价替换
- 容器特性
- 白名单
- 缓冲溢出 等等### HTTP协议 HTTP协议中有很多功能,一般来说我们可以用到的就是编码功能,后来有大佬发现了分块传入来绕过WAF,具体大家可以百度看看,大概http协议我们可以总结如下。
- 构造畸形数据包
- 编码
- 分块
- 数据包溢出 可能有些表述有误,但是大概意思如此,构造畸形数据包的原理是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)### 容器特性
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 | |
| |