1

浅谈Bypass Waf – 上(基础篇)

 2 years ago
source link: https://www.secpulse.com/archives/173189.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

浅谈Bypass Waf – 上(基础篇)

文章来源|MS08067 Web漏洞挖掘班 第3期

本文作者:Hi2x(Web漏洞挖掘班讲师)

0x00 前言

在了解Bypass Waf之前,我们应该首先了解一些前置知识:

1.Waf是什么

2.Waf的类型

3.Waf的工作原理

1. Waf是什么

Waf全称为Web Application FireWall(Web应用防火墙);顾名思义Waf原理与日常使用防火墙相似,但主要注重在Web页面中存在的对应安全问题。

2.Waf的类型

WAF分为非嵌入型WAF嵌入型WAF

非嵌入型是指硬WAF、云WAF、软WAF之类。

嵌入型是指web容器模块类型WAF、代码层WAF。

3.Waf的工作原理

不论是什么类型的Waf,工作的方式几乎差不多。首先,从用户体验上出发,用户的目的是部署Waf从而解决对应的WEB安全问题;所以对于Waf开发来说,需要了解的就是:哪些位置可能会引发安全漏洞、如何判断攻击者利用攻击触发了漏洞。

回顾一下TOP 10的安全漏洞,我们可以得到一个结论,Web漏洞产生的位置基本都为:

1.HTTP头部字段

2.GET、POST提交的内容

3.上传的文件

所以,我们也可以逆推得到Waf构建及工作的原理大致为:

1.构建各种漏洞利用的攻击特征库

2.对漏洞产生位置的内容进行搜集

  3.将搜集的内容在特征库中进行匹配,查看是否存在攻击特征并作出相应

更详细的工作流程如下图所示:

建立特征库的流程:

beepress-image-173189-1644385654.png

判断恶意攻击流程:

beepress-image-173189-1644385655.png

0x01 绕Waf实战

了解完Waf是怎么拦截对应的流量之后,我们就明白了绕Waf的最终目标是绕过特征库检测(即绕过正则匹配)。

那如何绕过正则匹配呢?

主要的方式就两种:

1. 通过Fuzz脚本构造大量Payload进行尝试

2. 通过人为手工探测Waf编写规则。

第一种方式比较暴力,且针对初学者并不是很友好,因为需要很多之前师傅们绕Waf的Payload作为前置知识。

基本思路大致是:对绕过的方法进行搜集构造一些经常绕Waf的字符串,并且利用脚本在漏洞点构造语句+绕Waf字符串+垃圾字符等Payload,通过跑大量Payload的方式爆开可以绕Waf的Payload。

很好,所以我们介绍第二种方法。

前置知识:由于Waf需要尽量满足客户需求,Waf的匹配规则通常会匹配的很详细进而减少误报。

以某安全厂商的Waf产品的规则为例:

beepress-image-173189-16443856551.png
beepress-image-173189-1644385656.png

那我们就可以通过手工一步步探测Waf的过滤规则是什么,从而进行绕过。

如何进行手工探测Waf的过滤规则请看下一篇推文 浅谈Bypass Waf - 下(实战篇)

本文作者:Ms08067安全实验室

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/173189.html


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK