2024小迪安全课程第三节复习笔记

网站架构组件安全:WAF、CDN、OSS、反向代理与负载均衡


一、课程概述

1.1 知识定位

  • 本节课核心:网站架构中五种常见组件的安全影响

  • 学习目标:理解架构组件如何改变传统渗透测试路径,识别"无效测试"场景

1.2 五大组件概览

表格

组件 核心功能 对安全测试的主要影响
WAF Web攻击防护 拦截常规攻击手法,需研究绕过
CDN 内容分发加速 隐藏真实IP,导致信息收集错误
OSS 对象存储服务 上传漏洞失效,引入Access Key风险
反向代理 请求转发 测试目标偏差,可能测到无关站点
负载均衡 流量分摊 多服务器增加测试复杂性

二、WAF(Web应用防火墙)

2.1 核心概念

定义:Web Application Firewall,部署在Web应用前端的防护系统

分类体系

表格

类型 部署方式 适用场景 代表产品
硬件WAF 独立硬件设备 企业级、高流量场景 安恒、绿盟、深信服
软件WAF 服务器软件安装 个人、中小网站 安全狗、D盾
云WAF 云服务接入 云原生应用 阿里云WAF、腾讯云WAF
内置WAF 集成于CMS/框架 特定应用 WordPress安全插件

2.2 防护原理与影响

防护机制

  • 规则匹配:SQL注入特征、XSS payload识别

  • 行为分析:异常请求频率、扫描行为检测

  • 黑名单:已知恶意IP、攻击工具指纹

对安全测试的影响

表格

测试行为 无WAF 有WAF 结果
后门访问 正常连接 拦截/阻断 无法GetShell
SQL注入测试 正常报错/回显 拦截或返回403 无法验证漏洞
目录扫描 正常响应 IP被封禁 测试中断
文件上传 正常上传 Webshell特征拦截 上传失败

2.3 绕过技术现实

核心结论

WAF绕过是"钻空子",非"标准解法"------商业级WAF基本无法绕过,能绕过的都是防护能力较差的产品

绕过可能性评估

表格

WAF类型 绕过难度 实际可行性 备注
免费软件WAF(D盾等) 中等 ⚠️ 部分可行 规则库更新慢
商业硬件WAF 极高 ❌ 基本不可行 专业团队维护,AI检测
云WAF ❌ 难以绕过 大数据支撑,实时更新

常见绕过思路(仅作了解):

  • 编码绕过:URL编码、Unicode编码、分块传输

  • 分片绕过:超大请求体、慢速攻击

  • 白名单利用:IP白名单、User-Agent白名单

  • 0day利用:规则未覆盖的新漏洞


三、CDN(内容分发网络)

3.1 核心原理

定义:Content Delivery Network,通过分布式节点提供内容加速服务

工作机制

plain

复制

复制代码
用户请求 → DNS解析 → 智能调度 → 就近节点 → 缓存命中?
                                    ↓
                            是:直接返回缓存内容
                            否:回源请求 → 真实服务器 → 缓存并返回

3.2 对信息收集的致命影响

核心问题CDN隐藏真实IP,导致测试目标错误

表格

场景 无CDN 有CDN 后果
域名解析 直接返回真实IP 返回节点IP 信息收集目标错误
端口扫描 扫描真实服务器 扫描CDN节点 结果无意义
漏洞利用 针对真实应用 针对CDN缓存 无法触及目标
后门连接 连接真实服务器 连接被拦截/转发异常 无法维持权限

3.3 CDN识别与真实IP寻找

CDN识别方法

bash

复制

复制代码
# 1. 多地ping检测(IP不一致即CDN)
# 使用工具:超级ping、站长工具、17CE

# 2. 命令行检测
nslookup example.com
dig example.com

# 3. 响应头分析
# 查看X-Cache、Via、CF-Ray等CDN特征头

真实IP寻找思路(后续课程专题讲解):

  • 历史DNS记录查询(SecurityTrails、ViewDNS)

  • 子域名爆破(子域名可能未接入CDN)

  • 邮件服务器MX记录

  • 国外节点访问(部分CDN未覆盖海外)

  • 漏洞利用回源(SSRF等让服务器主动连接)


四、OSS(对象存储服务)

4.1 核心概念

定义:Object Storage Service,云厂商提供的海量、安全、低成本云存储服务

典型厂商:阿里云OSS、腾讯云COS、AWS S3、七牛云

4.2 对上传漏洞的根本性修复

传统上传漏洞利用链

plain

复制

复制代码
上传恶意脚本 → 存储至Web目录 → HTTP访问触发解析 → GetShell

OSS接入后的改变

plain

复制

复制代码
上传文件 → 转存至OSS(非Web服务器)→ 返回OSS访问URL
                                    ↓
                            文件仅存储,无执行环境
                            访问URL = 静态文件下载

安全影响总结

表格

方面 传统模式 OSS模式 结果
文件存储位置 Web服务器本地 云端OSS Bucket 物理隔离
文件解析执行 支持(PHP/ASP等) 不支持 后门失效
上传漏洞 可利用GetShell 漏洞修复 无需考虑
访问控制 目录权限控制 Bucket策略 + Access Key 新安全模型

4.3 OSS引入的新风险:Access Key泄露

Access Key构成

  • AccessKey ID:标识用户身份

  • AccessKey Secret:验证身份密钥

泄露后果

bash

复制

复制代码
# 攻击者获取Key后,可通过API完全控制OSS资源
aliyun oss ls oss://target-bucket/          # 列出所有文件
aliyun oss cp -r oss://target-bucket/ ./    # 下载全部数据
aliyun oss rm -r oss://target-bucket/       # 删除所有数据

防护要点

  • 最小权限原则:RAM子账号授权,限制Bucket范围

  • 密钥轮换:定期更换Access Key

  • 网络隔离:Bucket策略限制访问IP

  • 审计监控:开启OSS访问日志


五、反向代理与正向代理

5.1 核心概念辨析

表格

维度 正向代理 反向代理
代理方向 客户端 → 代理 → 目标服务器 用户 → 反向代理 → 真实服务器
发起方 客户端主动配置 服务器端配置
典型应用 翻墙、访问控制、匿名浏览 负载均衡、安全防护、隐藏源站
对测试影响 无影响(客户端行为) 严重影响(可能测到错误目标)

5.2 反向代理配置与测试陷阱

宝塔面板配置示例

plain

复制

复制代码
反向代理规则:
- 访问 / → 转发到 http://www.baidu.com
- 访问 /b → 转发到 http://www.bilibili.com
- 访问 /admin → 转发到 http://target-school.com/admin

测试结果

表格

访问URL 实际响应 测试对象
http://xiaodi.z8.com/ 百度首页 错误:百度,非目标站点
http://xiaodi.z8.com/b 哔哩哔哩 错误:B站,非目标站点
http://xiaodi.z8.com/admin 某学校后台 可能是真实目标

核心风险

未识别反向代理时,所有测试可能在"错误目标"上进行,浪费时间和资源

5.3 识别方法

技术识别

  • 响应头分析:X-Forwarded-ForViaX-Real-IP

  • 内容指纹:页面内容与原域名宣称不符

  • 证书分析:HTTPS证书与域名不匹配

信息收集验证

  • 备案信息查询:确认域名主体与页面内容一致性

  • 历史解析记录:对比历史IP与当前IP差异


六、负载均衡

6.1 核心原理

定义:Load Balance,将访问流量分摊到多台服务器,提高可用性和扩展性

工作机制

plain

复制

复制代码
用户请求 → 负载均衡器(Nginx/HAProxy/F5)→ 调度算法 → 后端服务器池
                                                    ↓
                                            轮询/权重/IP哈希/最少连接

6.2 对安全测试的复杂性影响

核心问题目标应用部署在多台服务器,单点突破≠全局控制

表格

场景 单服务器 负载均衡多服务器 测试策略调整
漏洞验证 一次验证即可 需验证所有节点 多次测试确认
GetShell 控制一台即可 需控制所有/关键节点 持久化机制需适配
权限维持 单点部署后门 会话可能漂移 考虑Session共享
数据一致性 单一数据源 多节点数据同步 注意数据滞后

6.3 权重配置与测试策略

Nginx权重配置示例

nginx

复制

复制代码
upstream backend {
    server 192.168.1.10:80 weight=10;  # 主服务器,90%流量
    server 192.168.1.11:80 weight=1;   # 备用服务器,10%流量
}

测试影响

  • 高权重服务器:优先测试,但可能不是最脆弱节点

  • 低权重服务器:难以触发,但可能配置落后(更易攻击)

  • 会话保持:基于IP哈希时,同一测试者始终访问同一节点


七、核心工具与操作命令

7.1 CDN检测工具

表格

工具/平台 用途 使用方法
超级ping 多地节点ping检测 在线平台,输入域名查看各地解析IP
17CE 国内CDN检测 全国节点访问测试
ViewDNS.info 历史DNS记录 查询域名历史解析IP
SecurityTrails 完整DNS历史 API查询,获取真实IP线索

7.2 OSS操作命令(阿里云CLI示例)

bash

复制

复制代码
# 配置认证
aliyun configure
# 输入AccessKey ID、Secret、Region

# Bucket操作
aliyun oss ls                           # 列出所有Bucket
aliyun oss mkdir oss://new-bucket/      # 创建Bucket
aliyun oss rm -r oss://target-bucket/   # 删除Bucket及内容

# 文件操作
aliyun oss cp localfile.txt oss://bucket/           # 上传
aliyun oss cp oss://bucket/remotefile.txt ./        # 下载
aliyun oss ls oss://bucket/                          # 列出文件

7.3 负载均衡配置识别

bash

复制

复制代码
# 多次访问观察响应差异(IP、Set-Cookie、Server头)
for i in {1..10}; do 
    curl -sI http://target.com | grep -E "(Server|X-Backend)"; 
done

# 使用不同IP段访问(检测调度算法)

八、可复现实验流程

实验1:WAF拦截效果验证

环境准备

  • Windows Server 2012 + IIS

  • D盾(或安全狗)免费版

  • WebShell样本(ASP/PHP)

步骤

Markdown

复制

代码预览

复制代码
1. 搭建IIS站点,部署WebShell
2. 无WAF状态:连接WebShell,确认正常
3. 安装D盾,开启WebShell防护
4. 再次访问WebShell → 观察拦截提示
5. 尝试连接工具(蚁剑/哥斯拉)→ 观察初始化失败
6. 记录WAF日志,分析拦截规则

实验2:CDN配置与真实IP隐藏

环境准备

  • 备案域名(国内CDN需备案)

  • 阿里云/腾讯云账号

  • 源站服务器(IP:47.x.x.x)

步骤

Markdown

复制

代码预览

复制代码
1. 源站部署网站,确认直接访问IP正常
2. 开通CDN服务,添加加速域名
3. 配置CNAME解析,指向CDN域名
4. 多地ping检测,观察不同地区返回不同IP
5. 对比:直接ping源站IP vs ping CDN域名
6. 结论:CDN域名解析结果≠真实服务器IP

实验3:OSS上传漏洞修复验证

环境准备

  • 阿里云账号 + OSS服务

  • 网盘类源码(如Cloudreve、Nextcloud)

步骤

Markdown

复制

代码预览

复制代码
1. 无OSS配置:上传PHP后门到网盘
2. 访问上传文件URL → 确认可执行(传统漏洞存在)
3. 配置OSS存储策略,启用阿里云OSS
4. 重新上传PHP后门
5. 观察:文件未存储在本地,转至OSS Bucket
6. 访问OSS返回的URL → 文件被下载而非执行
7. 结论:OSS模式下上传漏洞无法GetShell

实验4:反向代理配置与测试偏差

环境准备

  • 宝塔面板

  • 两个不同内容的网站(或百度、B站等外部站点)

步骤

Markdown

复制

代码预览

复制代码
1. 宝塔创建站点 xiaodi.z8.com
2. 配置反向代理:/ → http://www.baidu.com
3. 访问 xiaodi.z8.com → 观察到百度页面
4. 尝试对"目标站点"进行渗透测试
5. 分析:所有测试实际针对百度,与预期目标无关
6. 配置路径规则:/admin → 真实目标后台
7. 访问 /admin → 转向真实目标
8. 结论:反向代理导致测试目标完全偏差

实验5:负载均衡多节点测试

环境准备

  • 两台服务器,部署不同内容(如"Web1"、"Web2"标识)

  • Nginx负载均衡配置

步骤

Markdown

复制

代码预览

复制代码
1. 配置upstream,两台服务器权重1:1
2. 多次刷新访问,观察页面内容变化(Web1/Web2切换)
3. 修改权重为10:1,观察访问频率变化
4. 模拟单节点故障(关闭Web1)
5. 观察:服务仍然可用(Web2接管)
6. 安全测试视角:需考虑控制所有节点

九、本章核心考点总结

简答题高频考点

表格

考点 标准答案要点 考察频率
WAF对安全测试的影响 ①拦截常规攻击手法(SQL注入、XSS、后门连接) ②绕过技术受限,商业WAF基本无法绕过 ③测试需调整策略,寻找防护盲区 ⭐⭐⭐⭐⭐
CDN核心安全风险 ①隐藏真实IP,导致信息收集目标错误 ②节点缓存使漏洞测试无法触及源站 ③需专门技术寻找真实IP(历史DNS、子域名等) ⭐⭐⭐⭐⭐
OSS对上传漏洞的影响 ①文件转存至云端,脱离Web服务器 ②后门文件无法解析执行,上传漏洞"修复" ③引入Access Key泄露新风险 ⭐⭐⭐⭐⭐
反向代理vs正向代理 正向代理:客户端行为,对服务器测试无影响 反向代理:服务器行为,可能导致测试目标完全错误 ⭐⭐⭐⭐
负载均衡测试复杂性 ①多服务器部署,单点突破≠全局控制 ②需考虑会话保持、数据同步问题 ③权重配置影响测试节点覆盖 ⭐⭐⭐⭐

实操题高频场景

  1. WAF识别与绕过尝试:给定目标,判断WAF类型,尝试基础绕过

  2. CDN真实IP寻找:通过历史DNS、子域名等找到源站IP

  3. OSS配置识别:判断上传功能是否对接OSS,调整测试策略

  4. 反向代理识别:通过响应头、内容指纹识别代理配置

  5. 负载均衡节点分析:多次访问识别多节点,制定全面控制策略

关键记忆口诀

plain

复制

复制代码
WAF拦截靠规则,绕过基本是钻空
CDN隐藏真实IP,测节点等于白费劲
OSS存储不解析,上传漏洞自然消
反向代理最阴险,测了半天是百度
负载均衡多台机,控一台不等于全控
相关推荐
冥王丁B2 小时前
第31章 Prompt 与聊天模型笔记
笔记·python·prompt
新手88602 小时前
Oracle VirtualBox虚拟机安装 和 安装 window11版本虚拟机 及 启用EFI和硬盘无法使用 问题
服务器·windows·计算机网络·安全·虚拟机
左左右右左右摇晃2 小时前
Java笔记——包装类(自动拆装箱)
java·笔记·python
Yeh2020582 小时前
MySQL笔记二
笔记
ALex_zry2 小时前
Docker Compose 配置文件完全指南:从基础到生产级安全实践
服务器·安全·docker
elseif1232 小时前
CSP-S提高级大纲
开发语言·数据结构·c++·笔记·算法·大纲·考纲
兰.lan3 小时前
【黑马ai测试】Day01课堂笔记+课后作业
软件测试·笔记·python·ai·单元测试
Jack.Jia3 小时前
GPS原理笔记二——GPS信号和导航电文
笔记
zzh0813 小时前
MySQL数据库操作笔记
数据库·笔记·mysql