堆叠注入就是多条语句执行局限性只产生在部分数据库用处场景为注入需要管理员账号密码密码是加密的无法解密那么就可以使用堆叠注入进行插入数据用户密码自定义的可以正常登录WAF绕过1.用大小写或者用/**/代表空格2.使用mysql的注释mysql能读懂但是WAF不会拦截举个例子union #aselect 1,2,3##a在WAF看来是一个字符串union没有和select联合使用那么就不会被拦截换行的目的是避#注释掉后面的select语句而且换行和空格在Mysql中都是可以正常执行的。通过此方式即可绕过WAF防护3.参数污染多个参数同时传递不同环境接收的变量不同比如phpapache环境下用GET方法同时传递两个参数它会接收后面的参数来看具体实操4.FUZZ大法将各种注释符或者符号使用脚本的方式批量尝试突破WAF的防护5.IP、URL、爬虫白名单绕过有些IP地址访问是不会被拦截就可以在http请求头中伪造自己的IP为白名单IP然后避免被拦截这个白名单IP甚至可以试试服务器IP。URL白名单类似于IP白名单爬虫白名单是因为有些搜索引擎会使用爬虫对网站数据进行爬取收集这些网站不会对搜索引擎的爬虫拦截那我们就可以伪装成搜索引擎的爬虫伪造user-agent为百度爬虫这样扫描出来后IP不会被WAF拦截而且扫描的都是正确的数据不会出现误报。6.静态WAF绕过有些WAF只会针对某些脚本文件拦截但是对于图片和文本文件不会拦截。比如下图x.txt后面使用了注入语句不会被拦截因为WAF只作用在php脚本上没有作用在txt文件上。7.版本号绕过union/*!45509 select*/WAF觉得union和select被数字45509隔开了但是这个数字是版本号不被影响