漏洞挖掘中的组合拳攻击
字数 1301 2025-08-23 18:31:18
漏洞挖掘中的组合拳攻击技术详解
一、XSS与CSRF组合攻击案例
1.1 案例背景
- 目标功能:新建课件功能
- 初始测试方法:见框就插的XSS测试方法
1.2 XSS漏洞发现过程
-
初步测试:
- 使用
<h1>标签测试内容是否被解析 - 在创建界面看似未被解析,但在详情页面发现标签被解析
- 使用
-
验证存储型XSS:
- 使用``标签测试成功
- 确认存在存储型XSS漏洞
-
漏洞局限性分析:
- 只能创建自己的课件
- 无法直接影响其他用户(self-XSS)
1.3 CSRF组合提升危害
-
API抓取:
- 抓取创建课件的API请求
-
构造攻击页面:
- 复制API请求为HTML表单
- 修改name参数为XSS payload
- 添加自动提交脚本
-
攻击实施:
- 将攻击页面部署在VPS
- 诱导受害者访问该链接
- 受害者访问时会自动创建包含XSS payload的课件
1.4 关键发现
- 触发点可能在非明显位置,需要仔细测试各个功能点
- 单独XSS可能危害有限,但结合CSRF可显著提升危害等级
二、XSS与二维码分享组合攻击案例
2.1 案例背景
- 目标功能:MD格式编辑器
- 功能特性:支持插入HTML代码
2.2 XSS漏洞发现
- 测试插入XSS payload成功弹窗
- 确认存在XSS漏洞
2.3 危害提升方法
-
功能分析:
- 系统支持生成分享二维码
- 扫描二维码可查看编辑内容
-
组合攻击:
- 在编辑器中插入XSS payload
- 生成分享二维码
- 受害者扫描二维码时触发XSS
2.4 攻击效果
- 将原本只能影响自己的XSS转变为可影响其他用户的漏洞
- 通过二维码分享机制扩大攻击面
三、组合拳攻击方法论
3.1 基本思路
- 发现单个漏洞(如XSS)
- 分析漏洞的局限性(如self-XSS)
- 寻找可组合的其他功能或漏洞(如CSRF、分享功能)
- 设计组合攻击链
3.2 常见组合模式
-
XSS + CSRF:
- 通过CSRF让受害者执行XSS攻击代码
-
XSS + 分享功能:
- 利用系统分享机制传播XSS
-
Self-XSS + 用户交互功能:
- 结合需要用户交互的功能突破self限制
3.3 测试技巧
-
全面功能测试:
- 不要只测试明显位置,检查所有可能的内容展示点
-
API分析:
- 抓取关键操作的API请求
- 分析请求是否缺乏CSRF防护
-
用户流追踪:
- 跟踪内容在整个系统中的流转路径
- 寻找可能的二次触发点
四、防御建议
4.1 针对XSS
- 实施严格的输入过滤和输出编码
- 使用CSP策略限制脚本执行
4.2 针对CSRF
- 关键操作使用CSRF Token
- 检查Referer头
- 实施SameSite Cookie策略
4.3 针对组合攻击
- 审查所有用户内容分享功能的安全性
- 对二维码等分享内容进行安全扫描
- 实施权限校验,确保用户只能访问有权访问的内容
五、总结
组合拳攻击通过将多个低危漏洞或功能缺陷结合,可以显著提升攻击危害。安全测试人员应当:
- 不满足于发现单个漏洞
- 深入分析系统功能交互
- 寻找可能的漏洞组合方式
- 通过创造性思维突破漏洞利用限制
这种思维方式不仅适用于XSS+CSRF组合,也可应用于其他类型的漏洞组合,是高级漏洞挖掘的重要技能。