基础入门-Web应用&OSS存储&负载均衡&CDN加速&反向代理&WAF防护&部署影响
-1

演示案例:

  • Web-拓展架构-WAF保护-拦截攻击
  • Web-拓展架构-CDN节点-隐藏真实IP
  • Web-拓展架构-OSS存储-防上传攻击
  • Web-拓展架构-反向代理-数据应用转发
  • Web-拓展架构-负载均衡-多台机器服务

#Web+WAF

WAF:web应用防火墙,有以上几种分类,一般都是软件型用的居多 (安全狗等均已过时,没什么人用了)目前用的多的、比较主流的是长亭的雷池waf

原理:Web应用防火墙,旨在提供保护

影响:常规Web安全测试手段会受到拦截

演示:雷池社区版 https://waf-ce.chaitin.cn/

Ubuntu20.04 + 雷池社区版

安装雷池:

https://docs.waf-ce.chaitin.cn

bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"

搭建网站:

https://zhuanlan.zhihu.com/p/705196831

拉取靶场:

docker run --name webgoat -d -p 8080:8080 -p 9090:9090 registry.cn-shanghai.aliyuncs.com/kubesec/webgoat:v2023.8

安装过程都很简单,复制粘贴就行,这里就不作演示了,详细的可以看我上方的文档链接

配置雷池:

防护应用-添加站点-设置域名-上游地址-没真实域名修改本地host解析

上述的信息是什么意思呢?首先我们来看81端口,为什么我使用的是81端口呢?答案很简单,我的80端口被占用了,其次我的域名信息是瞎填的,虚构出个域名,等下我们会修改host文件来强行更改它的映射关系
上游服务器又是什么呢? 还记得我们拉取靶场的那条命令吗? 那条命令拉取的镜像就是本地的8080端口 也就是 http://127.0.0.1:8080 这个IP地址,通过修改host,强行指test.leichi.com

我们访问这个地址,http://test.leichi.com:81/WebGoat/login 就可以进入到网站当中了

我们注册个账号,进入到靶场中,试一下waf的防护能力

进入靶场后,我们找个sql注入点,尝试运行payload

可以看到,直接被waf拦截下来了

我们可以看一下雷池防护,打开攻击防护-我们就可以看到它的攻击信息

我们还可以利用它内置的ai模型来分析


#Web+CDN

原理:内容分发服务,旨在提高访问速度

影响:隐藏真实源IP,导致对目标IP测试错误

演示:阿里云备案域名全局CDN加速服务

unbuntu + BT宝塔面板 + CDN服务

如何开启CDN?

打开阿里云,进入控制台,搜索CDN,进入到域名管理选项里

选择你要加速的域名、加速区域、业务类型等、然后我们往下滑,找到新增源站信息

源站信息就代表着你网站的真实IP 然后就下一步一直点就好了,有一个点需要注意的是防止费用超额

我们可以做一些使用限制,达到了这个用量后,就会自动停止cdn服务

最后我们配置个cname解析记录就可以使用cdn服务了

配置完成后,我们可以使用超级ping来检测一下我们的配置是否成功

像这种,出现了多个IP地址,那就证明了我们的配置成功了,成功挂载CDN服务了

Web+OSS

原理:云存储服务,旨在提高访问速度

演示:https://cloudreve.org/

Windows2016 + cloudreve + 阿里云OSS

https://github.com/cloudreve/Cloudreve/releases/tag/3.7.1

1、启动应用

我们搭建一台服务器,并且配置好宝塔面板、域名解析、把上述的演示代码运行

可以看到 它已经监听了5212端口,那就证明服务启动了,在此之前需要检查端口冲突情况以及安全组策略,是否放通了相应端口

接下来我们就可以访问这个站点了,你可以通过域名访问,也可以通过IP地址访问,这里我用的是域名访问

2、登录管理

我们可以用上述中的默认账号密码登录上去,登录上去后,系统界面就是这个样子的

3、配置存储信息

我们可以点右下角加号来传一个文件试一试,这里我传一张图片试一试

我们在服务器上找一下我们上传的文件地址,我们可以在uploads/1目录下找到我们所上传的文件,这就是我们说的传统意义上的文件上传,也就是把文件上传到我本地服务器的磁盘上

如果我在这里上传了一个后门,并且它能够正常解析这个后门,那么这就是利用文件上传漏洞来拿到网站的webshell(没有涉及到oss存储服务的一个玩法)

4、更改用户组存储属性

接下来,我们来配置一下云存储服务,看看会带来一些什么样的影响

打开后台管理目录,(也就是你的域名、+端口号/admin http://www.yinan.xyz:5212/admin)点击存储策略、添加存储策略、选择阿里云oss

打开之后就是这样的一个页面,我们先不用管它,转头先配置阿里云oss服务

阿里云OSS:

开通OSS

2、新建Bucket

点击bucket列表,创建bucket

填写一个bucket名称,剩下的保持默认就好

3、配置Bucket属性

创建好后,就会出现这个页面,我们点击进入bucket

新建目录,定义一个文件路径

4、配置Access访问

进入RAM访问控制台,用户、创建用户 填写一个名称以及访问配置

接下来我们点击那个蓝色的登录名称,进入到详细页面

点击AccessKey

这样我们的AK SK就创建出来了 (注意!一旦忘记自己的sk (Access Secret)将无法回看,建议保存截图或点击下方的下载csv文件)

我们接下来查看oss的外网访问地址(Endpoint),如果在旧版控制台找不到的话,我们可以切换至轻量控制台

这样我们就可以看到外网访问地址了

我们所需的信息都已准备完成,现在我们可以回过头来配置CLoudreve了

把bucket名称、Endpoint、ak、sk、 存储策略命名好,剩下的我们无脑点击下一步即可(测试环境,配置好,能验证出来就可以,实际开发环境中就不能这么无脑点击下一步了)

然后我们点击用户组,选择一个账户,(我这里用的是admin账户)编辑,把存储策略改成我们刚刚配置的那个

保存之后,我们来上传一个文件试一下,配置是否成功

这里我遇到的一些问题

错误信息: 无法创建上传会话: failed to initialize multipart upload: oss: service returned error: StatusCode=403, ErrorCode=AccessDenied, ErrorMessage=”You have no right to access this object.”, RequestId=69D3922AFCBC723834C8A65B

简单说: 你用的 AccessKey 没有上传权限。

解决: 去阿里云 RAM 控制台,给这个 AccessKey 加上 OSS 完全管理权限AliyunOSSFullAccess),或者改用主账号的 AccessKey 测试一下。

点击全选,点击确定、授权,这样就可以解决因权限不足而导致的问题了

我们上传了个图片,刷新一下,可以在后台系统看到这个图片了

那么我现在到服务器对应的上传目录,找一下,看看能不能看到这个上传的图片

可以看到,服务器里并没有我们上传的那个图片,我们到oss存储上去找一下我们上传的那个文件

我们可以访问一下图片的url

可以看到直接被下载了,没有解析的环境

一、为什么用 OSS?

  • 节省带宽:静态文件不再占用应用服务器带宽
  • 加速访问:CDN + 边缘节点提升加载速度
  • 弹性存储:无需担心磁盘空间不足

二、安全测试受到哪些影响?

  • 上传测试点变化
    文件直接存入 OSS,传统后缀绕过、内容校验等漏洞测试失效,需转向检查 签名策略、Bucket 权限、上传凭证
  • 文件解析路径不同
    WebShell 无法在应用服务器上执行,文件包含、解析漏洞被规避;但可能引入 Bucket 公开读导致的敏感信息泄露
  • AK/SK 成为核心风险
    如果 AccessKey 硬编码在前端或配置文件,攻击者可获取整个 Bucket 的控制权,甚至横向攻击其他云服务。

三、额外需关注的测试点

  • CORS 配置不当 → 跨域读取
  • Bucket 公有写 → 任意文件上传
  • 签名 URL 泄漏或有效期过长
  • SSRF 通过 OSS URL 探测内网

#Web+反向代理

正向代理为客户端服务,客户端主动建立代理访问目标(不代理不可达)

反向代理为服务端服务,服务端主动转发数据给可访问地址(不主动不可达)

原理:通过网络反向代理转发真实服务达到访问目的

影响:访问目标只是一个代理,非真实应用服务器

注意:正向代理和反向代理都是解决访问不可达的问题,但由于反向代理中多出一个可以重定向解析的功能操作,导致反代理出的站点指向和真实应用毫无关系!

演示:Nginx反向代理配置

Windows2016 + BT宝塔面板 + Nginx

我现在要做的是,通过部署一个子域名,我访问这个子域名就能访问到我宝塔面板的web页面,也就是相当于 我把通过端口号访问的形式,反向代理到我子域名上,实际上我访问这个子域名跟我直接访问端口站是一样的

首先我们需要做的就是配置好相应的域名解析、在宝塔面板上建好站点信息

然后我们来到反向代理那个选项

写上你的代理名称、目标url、发送域名等

由于我使用了反向代理,我想把我的25443这个端口,映射到我子域名bt.yinan.xyz上,所以我就填写127.0.0.1:25443本地环回地址,发送域名也是本地地址

这样我访问bt.yinan.xyz 就相当于访问了yinan.xyz:25443 我再在阿里云的安全组配置上限制25443端口的访问,模拟内网不可达的情况,这样我就通过这种反向代理的方式就能访问到我不能访问的服务器了

反向代理隐藏后端真实 IP,测试入口单一但可能因配置错误、请求走私、缓存投毒等引入新风险,且需注意请求/响应被改写导致的测试失效。

#Web+负载均衡

原理:分摊到多个操作单元上进行执行,共同完成工作任务

影响:有多个服务器加载服务,测试过程中存在多个目标情况

演示:Nginx负载均衡配置

Windows2016 + BT宝塔面板 + Nginx

新建域名解析记录,域名信息

进入配置文件选项把下述信息填写到配置文件中


#定义负载设置

upstream fzjh{

         server 你对应的IP地址 weight=1;   //权重为1就相当于这是主服务器为你服务

         server 你对应的IP地址 weight=2;   //权重为2就相当于这是备服务器为你服务

}

#定义访问路径 访问策略

location / {

    proxy_pass http://fzjh/;

}

为了方便对比,我们把它做个区分

主服务器就是默认的nginx访问页面

这个2222就是备用服务器

我们的配置没有错误的话,那我们狂点刷新,页面就会在这两个当中来回跳

负载均衡对安全测试的影响(精简版)

负载均衡是什么?

多台后端服务器分摊请求,对外呈现统一入口(常用作横向扩展、高可用)。

对安全测试的影响

  • 真实源 IP 丢失
    请求经过负载均衡后,测试获取的往往是 LB 的 IP,需依赖 X-Forwarded-For 等头字段获取真实 IP。若配置不当,可被伪造绕过访问控制。
  • 会话状态不一致
    如果 LB 未开启会话保持,测试中的登录态、验证码等状态可能落在不同后端,导致测试结果不稳定或逻辑绕过。
  • 攻击面分散,测试覆盖难
    每个后端服务器可能版本、补丁、配置不一致。测试只打到某台,无法发现其他后端的漏洞(如未修复的中间件漏洞)。
  • 健康检查暴露内网信息
    健康检查接口可能返回后端状态、版本信息,或可被利用进行内网探测。
  • LB 本身成为新攻击点
    负载均衡配置错误(如访问控制失效、SSL 卸载配置不当)、LB 组件漏洞、管理接口暴露等,可能直接导致整个集群沦陷。

核心风险点(测试重点)

  • IP 伪造:测试 X-Forwarded-For 等头是否被信任,能否绕过白名单
  • 会话黏性:测试会话固定、会话劫持在分布式环境下的影响
  • 后端差异:扫描所有真实后端 IP(如有暴露),对比响应差异发现隐蔽漏洞
  • 健康检查接口:尝试访问 /health/status 等路径,探测后端信息

一句话版:

负载均衡隐藏真实后端,测试时需关注源 IP 伪造、会话状态不一致、后端差异漏洞及 LB 自身配置风险。

本回答由 AI 生成,内容仅供参考,请仔细甄别。

文末附加内容
上一篇
下一篇