WAF绕过主要集中在信息收集,漏洞发现,漏洞利用,权限控制四个阶段。
1、什么是WAF?
Web Application Firewall(web应用防火墙),一种公认的说法是“web应用防火墙通过执行一系列针对HTTP/HTTPS的安全策略来专门为web应用提供保护的一款产品。
基本可以分为以下4种:
软件型WAF
以软件的形式安装在服务器上面,可以接触到服务器上的文件,因此就可以检测服务器上是否有webshell,是否有文件被创建等。
硬件型WAF
以硬件形式部署在链路中,支持多种部署方式。当串联到链路上时可以拦截恶意流量,在旁路监听模式时只记录攻击但是不进行拦截。
云 WAF
一般以反向代理的形式工作,通过配置后,使对网站的请求数据优先经过WAF主机,在WAF主机对数据进行过滤后再传给服务器。
网站内置的WAF
就是来自网站内部的过滤,直接出现在网站代码中,比如说对输入的参数强制类转换啊,对输入的参数进行敏感词检测啊什么的。
2、如何判断WAF?
Wafw00f识别工具:https://github.com/EnableSecurity/wafw00f
看图识别:https://mp.weixin.qq.com/s/3uUZKryCufQ_HcuMc8ZgQQ
其他项目脚本平台。
3、目前有哪些常见WAF产品?
参考:https://blog.csdn.net/w2sft/article/details/104533082/
① 硬件型
硬件型WAF以一个独立的硬件设备的形态存在,支持以多种方式(如透明桥接模式、旁路模式、反向代理等)部署到网络中为后端的Web应用提供安全防护,是最为传统的WAF型态,在受访企业中部署占比为35.2%。相对于软件产品类的WAF,这类产品的优点是性能好、功能全面、支持多种模式部署等,但它的价格通常比较贵。国内的绿盟、安恒、启明星辰等老牌厂商旗下的WAF都属于此类。
② 软件型
这种类型的WAF采用纯软件的方式实现,特点是安装简单,容易使用,成本低。但它的缺点也是显而易见的,除了性能受到限制外,还可能会存在兼容性、安全等问题。这类WAF的代表有ModSecurity、Naxsi、ShareWAF、安全狗等。
③ 云WAF
随着云计算技术的快速发展,使得基于云的WAF实现成为可能,在本次调查中占比甚至超过了传统的硬件WAF跃升为第一位,达到39.4%。阿里云、腾讯云、深信服云WAF、Imperva WAF是这类WAF的典型代表。
常规WAF检测技术:
1.正则匹配——容易被绕过(使用加密,编码,分段等)
2.机器语言
3.行为分析
许多安全产品都会检测工具的特征,我们需要了解工具的数据包流量特征,才能更好的绕过安全检测。
我们在使用AWVS扫描配置的安全狗的网站时,经常提示被拦截,无法进行正常扫描
AWVS绕过安全狗扫描目标网站:
1.因为安全狗默认开启各大搜索引擎的爬虫白名单,所以我们可以伪造UA头绕过安全狗
2.启动awvs——添加目标,下滑到Crawling——选择Safari
3.来到网站:https://blog.csdn.net/qq_26230421/article/details/99052337 获取各大搜索引擎的蜘蛛UA头,我这里使用的是百度蜘蛛UA:Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)
将Safari UA替换为百度蜘蛛UA:
4.点击保存,开始扫描。访问网站也没有触发拦截,成功绕过安全狗。
还可以使用代理池绕过狗子。
1.购买隧道代理
在快代理购买一个代理:https://www.kuaidaili.com/cart?t=tps_c
将自己的 主机外网ip(浏览器搜索ip查询获取外网ip) 设置为白名单,这样本机使用代理就不需要输入账户密码
2.启动AWVS
添加目标(Add Targets)保存(save)之后跳转到目标设置(Target Settings) 配置代理,配置好点击保存就可以开始扫描。
1.不配置代理池启动xray扫描目标,被拦截无法扫描
访问目标,ip还被宝塔拉入黑名单
2.配置代理池
打开Xray根目录,打开config.yaml文件配置代理
配置好Xray代理,在运行xray请求就会经过代理池发送给目标。
运行xray,成功开始正常扫描
访问网站也没有被拉黑,成功绕过宝塔防火墙。
按照goby的规则配置好代理。注意:goby不走http协议,所以配置时要配置socks协议的端口号。
填写好代理信息,点击Check Proxy测试代理是否可用
测试成功,Goby成功配置代理
开始扫描,成功绕过宝塔防火墙
使用参数绕过防火墙:
--proxy=“http://代理池地址:端口” #配置代理
--random-agent #随机UA头
启动sqlmap,开始扫描
输入:python sqlmap.py -u "目标地址" --proxy="http://r354.kdltps.com:15818" --random-agent