Web应用拓展架构
[TOC]
Web应用拓展架构
一、安全防护类
1. WAF(Web应用防火墙)
- 核心概念:针对Web应用的攻击防护工具,通过解析HTTP/HTTPS流量过滤恶意请求
- 分类与代表产品:
- 硬件型:串联/旁路部署,拦截/记录恶意流量(Imperva、天清WAG)
- 软件型(非嵌入):服务器安装,检测webshell、文件篡改(安全狗、云锁、D盾)
- 云WAF:反向代理模式,类似带防护的CDN(阿里云云盾、腾讯云WAF)
- 嵌入型(网站内置):代码级防护,过滤敏感字符、编码转义(自定义开发)
- 核心影响:拦截恶意攻击的同时,会阻挡常规Web安全测试手段
- 演示配置:
- 环境:Ubuntu20.04 + 雷池社区版
- 安装命令:
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)" - 配套网站搭建:
docker run --name webgoat -d -p 8080:8080 -p 9090:9090 registry.cn-shanghai.aliyuncs.com/kubesec/webgoat:v2023.8 - 配置步骤:添加站点→设置域名→填写上游地址→无真实域名需修改本地host解析
- 攻击思路:
- 特征绕过:对攻击 payload 进行编码(URL二次编码、Unicode编码)、分段传输、混淆(插入无关字符),绕过WAF规则匹配
- 协议层绕过:利用HTTP请求走私(CL/TE不一致)、畸形请求头(多Host头、无效Content-Type),绕过WAF解析逻辑
- 绕过云WAF:找到未被CDN/WAF代理的子域名、直连IP,或利用DNS缓存污染指向真实服务器
- 软件型WAF攻击:针对安全狗/云锁等软件的自身漏洞(如权限提升、绕过拦截规则),或通过进程注入关闭WAF防护
2. 蜜罐系统
- 核心概念:模拟脆弱目标的诱捕系统,用于捕获攻击行为
- 核心作用:钓鱼诱使攻击者,干扰测试人员判断,属于主动防护手段
- 演示配置:
- 环境:Ubuntu20.04
- 一键安装命令:
bash <(curl -sS -L https://hfish.net/webinstall.sh) - 官方地址:https://hfish.net/
- 攻击思路:
- 蜜罐识别:通过端口开放合理性、响应延迟、虚假漏洞触发结果(如SQL注入无真实数据返回)判断是否为蜜罐
- 利用蜜罐横向:若蜜罐未隔离,可通过蜜罐服务器的弱口令、漏洞,尝试横向渗透至真实业务网段
- 反制蜜罐:利用蜜罐的日志收集功能,发送虚假攻击流量干扰防护方分析,隐藏真实攻击意图
二、存储与加速类
1. OSS(对象存储服务)
- 核心概念:云存储服务,专注静态文件(图片、附件等)存储
- 核心原理:解决源服务器存储空间不足、静态文件占用带宽过高、加载速度慢的问题
- 核心影响:上传/解析文件均来自OSS资源,单独存储难以直接解析;存在AK/SK泄露隐患;文件上传与解析逻辑需单独做安全测试
- 演示配置:
- 环境:Windows2016 + Cloudreve + 阿里云OSS
- Cloudreve下载地址:https://github.com/cloudreve/Cloudreve/releases/tag/3.7.1
- 配置流程:
- 阿里云OSS:开通服务→新建Bucket→配置Bucket属性→设置Access访问权限
- Cloudreve:启动应用→登录管理后台→配置OSS存储信息→修改用户组存储属性
- 上传流程:客户端申请上传凭证→应用服务器生成签名URL/表单→客户端上传文件→返回上传结果
- 攻击思路:
- AK/SK窃取与滥用:通过代码泄露、日志泄露、中间人攻击获取AK/SK,利用OSS API上传恶意文件(webshell)、下载敏感数据、篡改存储文件
- 上传漏洞:绕过Cloudreve等管理工具的文件类型检测,上传后缀欺骗(如
.php.jpg)、解析漏洞触发文件(如.htaccess),结合OSS文件访问规则执行恶意代码 - Bucket权限劫持:利用配置错误(公开读写权限),访问他人Bucket数据,或植入恶意文件进行钓鱼
- 存储溢出攻击:批量上传超大文件,消耗OSS存储空间与带宽,导致服务不可用
2. CDN(内容分发网络)
- 核心概念:内容分发服务,通过边缘节点缓存资源
- 核心原理:缩短用户与资源的网络距离,提升访问速度
- 核心影响:隐藏源服务器真实IP,导致直接针对IP的测试失效
- 演示配置:环境为Windows2016 + BT宝塔面板 + 阿里云备案域名全局CDN加速服务
- 攻击思路:
- 真实IP探测:通过DNS历史记录(DNSdumpster)、邮件头信息、子域名解析(未配置CDN的子域)、第三方接口(如IP查询API)泄露获取真实IP
- CDN节点攻击:利用边缘节点的漏洞(如缓存投毒、节点服务器权限漏洞),篡改缓存内容植入恶意代码,影响所有访问该节点的用户
- 绕过缓存攻击:构造不缓存的请求(如带随机参数、特殊请求头),直接命中源服务器,进行SQL注入、XSS等漏洞测试
- DDoS攻击:针对CDN节点发起大流量攻击,耗尽CDN防护带宽,导致源服务器暴露并瘫痪
三、网络架构类
1. 反向代理
- 核心概念:为服务端提供转发服务,客户端请求先经代理服务器再转发至真实服务
- 核心原理:通过代理转发实现真实服务访问,解决服务端访问可达性问题,支持重定向解析
- 与正向代理的区别:
- 正向代理:为客户端服务,客户端主动通过代理访问目标(不代理则不可达)
- 反向代理:为服务端服务,服务端主动转发数据(不配置则不可达)
- 核心影响:访问目标为代理服务器,非真实应用服务器;可能导致站点指向与真实应用无关
- 演示配置:环境为Windows2016 + BT宝塔面板 + Nginx(通过Nginx配置反向代理规则)
- 攻击思路:
- 代理服务器漏洞利用:针对Nginx等代理软件的漏洞(如路径穿越、解析漏洞、权限提升),获取代理服务器控制权
- 反向代理绕过:构造特殊请求路径(如
../)、修改Host头,绕过代理转发规则,直接访问后端真实服务器 - 缓存投毒:通过代理服务器缓存恶意响应,导致所有通过该代理的用户访问时触发攻击(如XSS、钓鱼)
- 横向渗透:拿下代理服务器后,利用其作为跳板,扫描后端真实服务器网段,寻找未暴露的漏洞
2. 负载均衡
- 核心概念:将请求分摊至多个服务单元,协同完成工作任务
- 核心原理:通过负载分配策略(如权重)提升服务可用性与并发处理能力
- 核心影响:存在多个后端服务器,测试过程中需覆盖所有目标节点
- 演示配置:
- 环境:Windows2016 + BT宝塔面板 + Nginx
- Nginx核心配置:
# 定义负载节点(weight为权重,数值越大分配请求越多) upstream load_balance { server 120.26.70.72:80 weight=1; server 47.75.212.155:80 weight=2; } # 配置访问路径转发 location / { proxy_pass http://load_balance/; }
- 攻击思路:
- 后端服务器探测:通过会话固定、Cookie标记、不同请求特征,识别负载均衡后的所有后端服务器IP与版本
- 单点突破:寻找未及时更新补丁的后端服务器(部分节点可能遗漏升级),集中攻击该节点获取权限
- 负载策略绕过:利用会话保持机制,持续向同一后端服务器发送恶意请求,触发漏洞(如文件上传、命令执行)
- DoS攻击:针对权重较高的核心节点发起定向攻击,降低整体服务处理能力
四、运维管理类
堡垒机
- 核心概念:服务器运维集中管控工具,统一管理访问权限
- 核心作用:为运维提供合规访问入口,也可能成为测试的潜在突破口
- 演示配置:
- 环境:Ubuntu20.04
- 一键安装命令:
curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash - 官方地址:https://www.jumpserver.org/
- 攻击思路:
- 弱口令/凭证窃取:针对堡垒机登录页面,使用暴力破解、社工库撞库,或通过钓鱼获取运维账号密码
- 堡垒机自身漏洞:利用Jumpserver等堡垒机的已知漏洞(如权限绕过、命令执行),直接获取管理员权限
- 会话劫持:通过中间人攻击、XSS漏洞窃取运维人员的堡垒机会话Cookie,冒充登录
- 横向渗透:拿下堡垒机后,利用其存储的服务器账号密码、SSH密钥,批量控制后端业务服务器
五、接口相关
API接口
- 核心概念:不同软件间通信的数据交换接口,定义统一规则与协议
- 分类:
- Web API:基于HTTP协议(如RESTful API、GraphQL API)
- 库/框架API:特定编程语言功能接口(如Java API、Python标准库)
- 操作系统API:访问系统功能(如Windows API、POSIX API)
- 远程API:网络远程访问服务(如SOAP API、XML-RPC API)
- 场景示例:
- 内部API:收银系统中查询顾客数据、收入支付、销售提成等
- 外部API:网站调用地图、归属地查询、短信收发等第三方资源
- 核心影响:
- 内部API:提供高价值信息查询入口
- 外部API:可间接获取网站隐藏信息
- 测试方向:分析目录结构、命名规则、参数逻辑,进行接口枚举与漏洞测试
- 攻击思路:
- 未授权访问:尝试直接访问需要认证的API接口,或使用默认密钥、弱密钥绕过认证
- 参数注入攻击:在API参数中注入SQLi、XSS、命令执行 payload(如
id=1;cat /etc/passwd),利用接口未过滤风险 - 接口枚举与越权:通过字典爆破接口路径(如
/api/v1/user/info、/api/v2/admin/list),尝试访问管理员接口或其他用户数据 - 第三方API供应链攻击:利用外部API的漏洞,通过业务关联注入恶意数据(如篡改地图接口返回结果、伪造短信验证码)
- 流量劫持:中间人攻击拦截API通信,篡改请求/响应数据(如修改支付金额、用户权限)
六、其他拓展应用
- 核心类型:防火墙、消息队列、分布式系统等(如ActiveMQ、Redis、Memcache、Jenkins)
- 核心影响:简化运维的同时,增加了漏洞攻击面,为测试提供更多突破口
- 漏洞参考:
- 攻击思路:
- Redis未授权访问:利用默认无密码配置,写入SSH公钥、crontab反弹shell,控制服务器
- Jenkins漏洞利用:通过弱口令登录,执行系统脚本命令,获取服务器权限
- ActiveMQ漏洞:利用文件上传漏洞植入webshell,或通过 deserialization漏洞执行恶意代码
- Memcache缓存投毒:注入恶意缓存数据,导致应用程序逻辑错误或信息泄露
