文章目录
- 一:WAF基础知识
- (一) WAF简介
- (二) WAF工作原理
- 1) 流量识别
- 2) 攻击检测
- 3) 攻击防御
- 4) 记录日志
- (三) WAF分类
- (四) WAF检测
- 1) 手动检测
- 2) 工具检测
- 二:安全狗使用指南
- (一) 安全狗的下载
- (二) 安全狗的安装
- (三) 安全狗绕过
一:WAF基础知识
(一) WAF简介
(二) WAF工作原理
1) 流量识别
2) 攻击检测
3) 攻击防御
4) 记录日志
(三) WAF分类
(四) WAF检测
1) 手动检测
2) 工具检测
二:安全狗使用指南
(一) 安全狗的下载
(二) 安全狗的安装
(三) 安全狗绕过
一:WAF基础知识
(一)WAF简介
WAF即Web应用程序防火墙通过过滤和监视Web应用程序与Internet之间的HTTP通信来帮助保护Web应用程序,Web Application Firewall (WEB 应用防护系统)。WAF与传统的 Firewall (防火墙) 不同,WAF 针对的是应用层。WAF可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。WAF针对的是应用层而非网络层的入侵,从技术角度应该称之为Web IPS。
(二)WAF工作原理
WAF的工作原理主要分为4个步骤:流量识别——>攻击检测——>攻击防御——>记录日志
1)流量识别:识别来自客户端的HTTP请求,并对HTTP请求包进行解析。WAF可以检查请求头、请求体、Cookie、URL参数等信息,并识别其中的攻击。
2)攻击检测:对识别的HTTP请求包进行攻击检测,匹配防御规则模块。WAF可以使用多种技术来检测攻击,例如正则表达式、特征匹配、行为分析等。WAF可以检测多种攻击,包括SQL注入、XSS、CSRF、命令注入等。
3)攻击防御:WAF根据检测结果采取相应的措施,例如拦截请求、阻止访问、记录事件等。WAF可以使用多种技术来响应攻击,例如重定向、报错、拦截、返回 403 页面或者跳转到指定页面或者不返回任何数据,抑或拉黑IP。
4)记录日志:WAF在处理的过程中会将拦截处理的日志记录下来,方便用户在后续中可以进行日志查看分析。
(三)WAF分类
WAF主要分为嵌入式WAF、非嵌入式WAF:
1)嵌入式WAF: 指的是网站内置的WAF。既来自网站内部的过滤,直接出现在网站代码中,比如过滤敏感字符,对潜在的威胁的字符进行编码、转义等。
2)非嵌入式WAF:指的是硬件型WAF、云WAF、软件型WAF之类的
(1)硬件WAF:硬件WAF通常是一种独立设备,它可以与网络交换机、路由器等设备集成,拦截来自外部网络的流量,并对Web应用程序进行保护。硬件WAF通常具有高性能和低延迟,适用于高流量的Web应用程序。硬件WAF的价格一般比较昂贵,支持多种方式部署到Web服务器前端,识别外部的异常流量,并进行阻断拦截,为Web应用提供安全防护。
代表产品有:Imperva、天清WAG等
(2)软件WAF:软件WAF通常是一种安装在服务器上的应用程序,可以通过修改Web服务器或代理服务器的配置文件实现。软件WAF可以与多种Web服务器和应用程序框架集成,包括Apache、Nginx、IIS等。软件WAF通常具有灵活性和易于配置的优点,适用于多种Web应用程序。软件WAF安装过程比较简单,需要安装到需要安全防护的web服务器上,以纯软件的方式实现。
代表产品:安全狗,云锁,D盾等
(3)云WAF: 云WAF通常是一种基于云的服务,可以将Web应用程序的流量转发到云端进行处理。云WAF可以提供全球分布的节点,从而提高Web应用程序的可用性和性能。云WAF通常具有弹性扩展、自动升级等优点,适用于高可用性和高性能的Web应用程序。且云WAF的维护成本低,不需要部署任何硬件设备,云WAF的拦截规则会实时更新。对于部署了云WAF的网站,我们发出的数据请求首先会经过云WAF节点进行规则检测,如果请求匹配到WAF拦截规则,则会被WAF进行拦截处理,对于正常、安全的请求则转发到真实Web服务器中进行响应处理。
代表产品有:阿里云云盾,腾讯云WAF等
(四)WAF检测
在实际的渗透测试过程中,经常会碰到网站存在WAF的情况。网站存在WAF,意味着不能使用安全工具对网站进行测试,因为一旦触碰了WAF的规则,轻则丢弃报文,重则拉黑IP。因此,需要安全且万完整的完成渗透测试工作第一步就需要判断目标站点是否使用WAF产品。
WAF检测方式:
1)手动检测:在目标URL后加上最基础的测试语句,并放在一个不存在的参数中。因为选用的参数是不存在的,不会对网站本身执行有影响,所以正常情况应该显示正常,但是如果访问被拦截,就说明存在WAF。简言之,可输入不合规字符,查看是否触发WAF防护机制。
2)工具检测:sqlmap自带有WAF识别模块可以识别出WAF的种类。但目标的WAF并没有什么特征,sqlmap只能识别出类型为Generic,详细的识别规则在sqlmap的WAF目录下,在该目录下也可以自定义waf的识别规则。
SQLmap检测命令: sqlmap.py -u “http://xxx.com” –identify -waf --batch
二:安全狗使用指南
(一):安全狗的下载
第一步:进入安全狗下载官网::http://free.safedog.cn/
第二步:点击“产品”——>选择“免费安全产品”——>选择所需要安装的安全产品:“网站安全狗”、“服务器安全狗”.
第三步:选择系统所匹配的安全狗安装包,点击下载。
(二):安全狗的安装
注意:安全狗是基于Apache服务才能扫描Apache文件使得安装成功,既在安装安全狗之前需要先启动Apache的系统服务。
1)点击安装程序进行安装。若在安装过程中,出现如下两个页面:页面1中提示“服务器上没有Apache服务”,页面2中服务名为空(一般情况下,Apache服务开启,安全狗程序会自动读取服务名),则表示Apache的系统服务未开启,需要先开启Apache的系统服务。
Apache系统服务是否启动检测方式:右击“此电脑”——>“管理”——>“服务和应用程序”——>“服务”,查看是否启动Apache服务。
Apache系统服务启动方式:
1)使用管理员权限进入CMD,切换到Apache的bin目录下执行命令:httpd.exe -k install -n apache X(版本号)
2)注册账号:安装完成之后,需要注册一个安全狗账号。
3)配置防护规则。进入“网站防护”模块,配置防护规则。
注意:在本地电脑右下角点击安全狗图标,若上面出现:“插件尚未安装,所有防护功能都会失效”字样,表示安全狗并未启动防护功能。
原因:Apache系统服务未开启。
安全狗程序安装成功并防护启动验证方式:
1)出现如下图标:
2)进入靶场进行验证,通过靶场堆站点进行攻击,查看安全狗是否启用拦截。
注意:若正常情况下需要在靶场进行漏洞攻击训练,则需要关闭安全狗;若练习安全狗绕过,则可开启安全狗服务。
(三)安全狗绕过
注意:当某种安全设备的绕过方式在公网上可以大量搜索到,那大概率这种方式已经无法绕过了(因为WAF规则库一直在更新),这里介绍的绕过方式是给初学者提供一个思路。
WAF绕过实质:让WAF的检测规则,识别不到所输入的敏感字符,既利用WAF规则漏洞进行绕过。
1)数据方面:
(1)大小写绕过 如:union select 改为 UniON SeLeCt
(2)参数加解密绕过 如:database()使用base64加密为 ZGF0YWJhc2UoKQ==。
(3)参数编码解码绕过 针对WAF过滤的字符编码,如使用URL编码,Unicode编码,十六进制编码,Hex编码等。
(4)使用特殊符号绕过
(5)反序列化绕过
(6)使用等价函数、同义符号绕过 如:and 等价于&&
(7)注释符混用绕过
(8)内联注释绕过 如:安全狗对database()函数进行拦截,因此,可以改写为database/* /( ) 或 union selecte =/!union*/ select,注释符里感叹号后面的内容会被mysql执行。
(9)双关键字绕过 如:script 写为 ScscriptRipt
(10)HTTP参污染 对目标发送多个参数,如果目标没有多参数进行多次过滤,那么WAF对多个参数只会识别其中的一个。如:?id=1&id=2&id=3 或 ?id=1/**&id=-1%20union%20select%201,2,3%23*/
(11)换行(\N)绕过
2)数据提交方式方面:
(1)更改数据提交方式 如:get提交方式 改为 post提交方式
3)其他方式
(1)FUZZ工具绕过
(2)利用数据库特性绕过