云WAF的识别与利用网络空间测绘绕过云WAF

这是红队系列文章的第篇,我们来详细的说一说如何识别及绕过云WAF。

前言

何为云WAF

云WAF(Web应用防火墙)是WAF的一种部署模式,它将WAF的功能在云端进行实现。只需要把域名的解析权交给云WAF,它就可以利用DNS调度技术,改变网络流量的原始流向,将网络流量牵引到云端的WAF上,云端的WAF对流量进行净化和过滤后,将安全的流量回传给后端真实的应用,最终达到安全过滤和保护的作用。

Bypass 原理

由于管理员未设定仅允许云WAF回源访问使得原始站点仍然暴露在互联网中或可被访问。而通过fofa/Quake/Hunter/zoomeye等资产测绘平台可以轻松的找到这些存在配置问题原始资产。

识别云waf

https://github.com/ox01024/Wwaf/

这款工具可快速的识别云WAF

我想用这款工具的一个目的是:你得知道对方是否使用了云WAF,才会去谈论,绕过云WAF。

当然,这款工具也不能100%识别市面上所有的云WAF,但是至少识别出来的你可以优先选择去绕过。

image-20220713170751798

绕过方法

静态资源

我们可以尝试在网络空间测绘引擎中输入网站的静态资源

image-20220713165958855

例如:

body="link href=/css/xxxxxxxxxxxx rel=prefetch>"这种

之后看一下IP情况(与主站IP不一致、地点符合公司所在地)即可判断这个IP很有可能是原始IP

而找到IP以后,很有可能他是不让你用纯IP访问的,此时你就需要注意,修改这个target为你找到的真实IP

image-20220713170219343

证书

你可以去选择使用

cert="domain"这种格式去搜索,按照上述方法也能找到真实IP

icon_hash

对于一些只有自己在用的系统,还可以使用icon_hash来搜索使用同样图标的网站,说不定也能找到真实IP

HOST碰撞

子域名搜集-->提取出全部的IP-->将这些IP设置为字典,批量爆破

现在我提取了两个IP:

接下来利用Burp进行HOST碰撞

1.设置target为变量(注意取消右侧的那个update Host xxx,变量的位置注意一下!)

image-20220713174433902

2.导入字典

image-20220713174254484

3.attack!

image-20220713174609997

最终我们能发现这个153很有可能是不带云WAF的网站!

实战

接下来我们尝试几种方式去找到这个系统的真实IP

假设目标域名为:

tysec.edu.cn

首先对target做云WAF检测

image-20220713170751798

多地ping的结果

image-20220713171155496

fofa搜 domain='tysec.edu.cn'

image-20220719001039377

可以确定确实存在云WAF

特征提取法

观察主站,找到一个感觉上还不错的

image-20220713174713037

之后直接开搜

image-20220713174730333

IP搜索法

我是如何找到的呢?其实不是很难,我观察了一下这个域名,首先这个网站的标题为浙江xxxx

然后他旗下的子域名、在浙江的只有

我们大胆猜测,很有可能这个主站就藏在这俩IP之间,我们搜一下

ip="121.40.232.153"

image-20220713172918176

点开以后,确实是跟主站一样,但没有了云WAF的标志,成功绕过了。

实际上,如果说IP比较多的话,可以用HOST碰撞来实现

验证

域名访问,尝试触发WAF

image-20220713173544310

IP访问:

image-20220713173615510

证明确实是绕过了云WAF