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
    • 配置流程:
      1. 阿里云OSS:开通服务→新建Bucket→配置Bucket属性→设置Access访问权限
      2. 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缓存投毒:注入恶意缓存数据,导致应用程序逻辑错误或信息泄露