第36天:WEB攻防-通用漏洞&XSS跨站&MXSS&UXSS&FlashXSS_笔记
一、课前回顾00:28
- XSS分类回顾:上节课介绍了反射型、储存型和DOM型三种XSS攻击类型,本节课将补充讲解MXSS、UXSS、FlashXSS和PDFXSS四种特殊类型。
- 特殊XSS特点:这四类XSS技术资料较少,主要因为出现频率低(如UXSS几年才爆出一个)且国内研究较少,国外相对关注更多。
二、通用漏洞及XSS跨站攻击01:44
1. 突变型XSS04:19

- 定义:MXSS(突变型XSS)指原本无害的Payload因特殊原因(如反编码)发生变异导致的XSS攻击。
- 典型案例:早期QQ客户端预览功能漏洞,当分享含转义XSS代码的博客链接时,QQ的预览功能会反转义导致XSS执行。
- 产生条件:
- 网站已过滤XSS标签(如将尖括号转义为 <和>)
- 通过特定平台(如聊天软件)分享链接时,平台解析机制重新激活被过滤的XSS代码
- 现状:现代浏览器(如IE11+、Edge)已修复相关漏洞,实际案例难复现。
2. MXSS的成因及常见种类06:26

- 技术原理:
- CSS转义:CSS中
\
字符转义后可能保留原始功能 - HTML实体:特殊标签中的实体字符通过
innerHTMLinnerHTMLinnerHTML
后会还原 - 浏览器差异:不同浏览器对实体编码的解析差异可能导致结构破坏
- CSS转义:CSS中
- 触发场景:
- 内容需被插入DOM两次以上
- 使用
innerHTMLinnerHTMLinnerHTML
或
document.writedocument.writedocument.write
重复输出内容 - 通过
insertAdjacentHTMLinsertAdjacentHTMLinsertAdjacentHTML
等函数操作变异内容
3. UXSS07:23

- 定义:UXSS(通用型XSS)利用浏览器或扩展漏洞绕过同源策略执行XSS,攻击目标是浏览器而非网站。
- 典型案例:CVE-2021-34506(Edge浏览器翻译功能漏洞):
- 访问含XSS代码的页面时触发翻译功能
- 翻译过程错误执行JS代码
- 影响版本:特定版本Edge浏览器
- 攻击特点:即使网站无XSS漏洞,只要浏览器存在缺陷即可触发。
4. FlashXSS08:32
- 技术原理:通过反编译SWF文件插入恶意代码
- Payload示例:
ExternalInterface.call("alert(1)")ExternalInterface.call("alert(1)")ExternalInterface.call("alert(1)") - 利用条件:需要上传恶意SWF文件并获取直链访问
5. 应用案例09:14
1)例题:UXSSCVE2021-34506

- 漏洞复现步骤:
- 在视频网站搜索含XSS代码的内容
- 使用浏览器翻译功能
- 观察JS代码执行情况
- 防御建议:
- 及时更新浏览器版本
- 禁用不必要的浏览器扩展
- 对用户输入内容进行多重编码过滤
2)PDFXSS
- 攻击流程:
- 创建含JS动作的PDF文件
- 通过文件上传获取直链
- 用户访问PDF时自动触发XSS
- 防御措施:
- 限制PDF文件中的JS执行
- 对上传PDF进行内容检测
三、XSS漏洞与浏览器安全10:26
1. XSS漏洞演示11:00

- 基本原理:通过构造恶意HTML标签(如:x:),当浏览器解析错误时会触发JavaScript代码执行
- 触发条件:
- 需要浏览器未对特殊字符进行过滤
- 在Edge浏览器90.0.818.63版本中可复现
- 图片加载失败时会执行onerror事件中的代码
- 实际攻击:可将alert(1)替换为任意恶意JS代码,如窃取cookie等操作

- 特殊触发方式:
- 原始页面显示代码但不会执行
- 使用浏览器翻译功能时可能重新解析DOM导致漏洞触发
- 演示中谷歌翻译后出现弹窗,说明存在UXSS漏洞
2. 浏览器漏洞与XSS17:14

- UXSS特点:
- 不同于传统XSS,不依赖网站漏洞
- 利用浏览器或扩展程序自身的客户端漏洞
- 影响范围包括所有访问的网站
- 历史案例:
- 2016年Chrome浏览器UXSS漏洞
- 2017年CVE-2017-5174(MHTML相关)
- 2021年Edge浏览器CVE-2021-34506
3. 例题1:特定浏览器版本的XSS漏洞利用18:05

- 漏洞复现要点:
- 必须使用特定版本浏览器(演示中使用90.0.818.63)
- 禁用浏览器自动更新功能
- 通过翻译功能触发漏洞更易成功
- 防御措施:
- 及时更新浏览器版本
- 禁用不必要的浏览器功能(如自动翻译)
- 网站应实施严格的输入过滤和输出编码

- 攻击链分析:
- 攻击者构造含恶意代码的搜索关键词
- 受害者使用漏洞浏览器搜索并查看结果
- 触发翻译功能时执行恶意代码
- 可绕过常规XSS防御机制
四、漏洞利用19:18
1. 浏览器漏洞概述19:21

- 漏洞特性:特定浏览器版本存在解析漏洞,如Microsoft Edge翻译功能漏洞(CVE-2021-34506)
- 漏洞本质:利用浏览器自身功能(如翻译、插件)而非网站代码缺陷触发XSS
- 典型案例:演示中通过谷歌、Facebook等大型网站测试成功,但需特定浏览器版本支持
2. 漏洞利用条件20:06
- 必要条件:
- 目标使用存在漏洞的浏览器版本(如未更新的Edge浏览器)
- 禁用浏览器自动更新功能(纯生态版本会自动修复漏洞)
- 环境限制:演示中使用网上获取的"严格版"浏览器,非官方标准版本
3. 漏洞挖掘方法20:42

- 核心方法:Fuzz测试(模糊测试)
- 测试浏览器各项功能(翻译、插件等)对XSS语句的解析异常
- 重点关注功能前后代码解析差异
- 奖励机制:微软曾为类似漏洞支付$20,000奖金(约16万人民币)
4. 漏洞利用示例21:39

- 攻击流程:
- 构造特殊搜索词:如'> :x:
- 诱使用户点击搜索结果链接
- 触发浏览器翻译功能执行恶意代码
- 特点:
- 即使目标网站(如百度)已过滤XSS,漏洞浏览器仍会激活语句
- 利用可信域名(如csdn.net)增强欺骗性
5. uXSS漏洞介绍25:06

- 全称:Universal Cross-Site Scripting(通用跨站脚本)
- 与传统XSS区别:
- 传统XSS:利用网站代码缺陷
- uXSS:利用浏览器/扩展程序漏洞
- 漏洞价值:被MITRE列为关键漏洞,CVSS评分高
6. uXSS漏洞利用原理26:01

- 技术原理:
- 浏览器翻译功能未正确处理含恶意脚本的外语文本
- 将本应转义的标记错误解析为可执行代码
- 攻击特征:
- 无需网站存在漏洞,任何用户输入展示页面都可能成为攻击媒介
- 影响范围:91.0.864.59版本前的Microsoft Edge浏览器
- 防御方案:更新至修补版本(通过设置>关于Microsoft Edge检查更新)
五、UXSS漏洞27:48
1. UXSS定义与特点28:09

- 全称: Universal Cross-Site Scripting
- 攻击原理: 利用浏览器或浏览器扩展漏洞制造XSS并执行恶意代码
- 特殊性: 不同于传统XSS,UXSS攻击不依赖网站本身漏洞,而是利用客户端环境缺陷
- 典型案例: Microsoft Edge浏览器翻译功能漏洞(CVE-2021-34506)导致JS语句被执行
2. SWF文件格式与用途28:43

- 本质: Macromedia(现Adobe)公司的Flash专用格式
- 常见用途:
- 网页动画展示
- 小游戏开发
- 视频播放器实现
- 交互特性:
- 支持参数传递
- 内置ActionScript编程语言
- 可与JavaScript代码交互

- 安全风险:
- 通过ExternalInterface.call执行JS代码
- 常用于Flash XSS攻击载体
3. SWF与JS结合实现UXSS29:18

- 双向调用:
- JS可以加载和操作SWF文件
- SWF可以通过特定接口调用JS函数
- 攻击场景:
- 利用SWF文件中的JS调用接口执行恶意代码
- 通过参数注入实现XSS攻击
- 技术术语:
- Flash XSS:特指通过SWF文件实现的跨站攻击
- 需要关注ExternalInterface等关键接口
4. 案例分析:CMS中的UXSS29:58

- 漏洞特征:
- 与网站开发语言无关(PHP/JAVA等均可受影响)
- 关键在于是否包含可交互的SWF文件
- 检测方法:
- 检查SWF文件是否存在JS调用接口
- 分析参数传递是否经过严格过滤
- 攻击流程:
-
-
- 构造恶意SWF文件或参数
- 通过上传或注入方式植入系统
- 触发SWF文件中的JS执行逻辑
-
-
- 防御建议:
- 禁用不必要的SWF文件
- 严格过滤ExternalInterface调用
- 保持Flash播放器最新版本
5. UXSS漏洞检测方法31:01
1)Flash XSS检测方法
- 检测原理: 通过分析SWF文件中是否存在调用JavaScript的代码,特别是能够被外部参数控制的变量调用
- 白盒检测:
- 直接搜索源码中的SWF文件
- 使用反编译工具分析SWF文件内容
- 查找ExternalInterface.call()等调用JS的关键函数
- 黑盒检测:
- 使用目录爬行工具寻找网站中的SWF文件
- 通过Google搜索语法查找site:example.com filetype:swf
- 分析网络请求中加载的SWF资源
2)SWF文件分析技术
- 反编译工具: 使用JPEXS Free Flash Decompiler工具进行反编译
- 关键代码特征:
- 查找ExternalInterface.call("functionName", param)形式的调用
- 检查参数是否来自外部可控变量(如URL参数)
- 特别注意字符串拼接形式的JS调用
- 漏洞验证:
- 构造形如http://example.com/file.swf?param=alert(1)的测试URL
- 观察是否能够执行任意JS代码
3)PDF XSS检测方法
- PDF制作方法:
- 使用PDF编辑器创建空白文档
- 在"属性"→"动作"中添加JavaScript代码
- 保存为带有JS的PDF文件
- 利用场景:
- 文件上传功能允许PDF格式时
- 网站提供PDF预览功能时
- 通过钓鱼邮件发送恶意PDF
- 浏览器兼容性:
- Chrome/Edge/IE等主流浏览器支持
- Firefox可能存在兼容性问题
- 实际效果取决于PDF阅读器实现
4)漏洞利用技巧
- SWF利用链:
- 找到可控参数的反编译SWF文件
- 构造恶意参数触发JS执行
- 结合BeEF等框架进行深度利用
- PDF利用链:
- 上传恶意PDF到可信网站(如腾讯文档、百度网盘)
- 获取PDF的直接访问链接
- 诱导用户通过浏览器打开PDF链接
- 防御绕过:
- 对SWF文件进行轻微修改避免哈希检测
- 使用合法的PDF模板嵌入恶意代码
- 利用网站白名单机制上传恶意文件
六、XSS漏洞分类总结01:12:53
1. 核心分类
- 三大类型:反射型、存储型、DOM型(老师强调这是业界最全面的分类标准)
- 内容特点:所有XSS相关教程/书籍基本都围绕这三种类型展开,没有更细化的分类体系
2. 靶场说明
- 教学选择:未使用DVWA/XSS-labs等基础靶场,因其绕过手法与CTF题目存在差异
- 替代方案:后续将使用CTFshow平台讲解绕过技术,包含多个XSS实战关卡
七、下节课预告
1. 高级利用手法
- 三大方向:
- 网页木马配合利用
- 钓鱼攻击配合利用
- 权限维持技术
- 扩展应用:SSRF等漏洞本质是这三种思路的变体组合
2. 防御与绕过
- 教学安排:第38课时将结合CTF题目讲解防御绕过技术
- 平台对比:CTFshow题目比传统靶场更具挑战性,但核心知识点相通
八、补充知识点
1. SWF文件利用
- 黑盒测试:通过爬虫/目录扫描寻找.swf文件
- 分析工具:需使用特定反编译工具(未明确工具名称)
2. PDF XSS
- 利用条件:主要适用于低版本IE浏览器
攻击步骤:标准的三步执行流程(具体步骤未展开说明) - 注:课程中提到的思维导图未在材料中提供具体内容,建议后续补充相关图示。教师特别强调XSS分类体系已完整覆盖所有已知类型,不建议额外寻找其他分类标准。
九、知识小结
| 知识点 | 核心内容 | 技术要点 | 应用场景 |
| M-XSS(突变型XSS) | 网站已过滤但被第三方平台重新激活 | 依赖QQ等社交平台的预览功能恢复过滤字符 | 低概率攻击,需特定客户端环境 |
| U-XSS(通用型XSS) | 利用浏览器自身漏洞触发 | CVE-2021-34506漏洞案例(Edge翻译功能触发) | 浏览器漏洞挖掘,跨站点通用攻击 |
| Flash XSS | SWF文件反编译漏洞利用 | ExternalInterface.call()函数调用JS | 网页游戏/视频站点,黑盒测试需爬取SWF文件 |
| PDF XSS | 内嵌JS的PDF文件攻击 | Acrobat JavaScript执行 | 钓鱼攻击,文件上传漏洞结合 |
| 防御手段 | IE低版本淘汰使部分攻击失效 | 现代浏览器安全机制升级 | 重点防护Flash/PDF解析器 |
| 测试工具 | JPEXS Free Flash Decompiler反编译工具 | PDF编辑器嵌入JS代码 | SWF反编译+PDF PoC制作 |
| 漏洞挖掘 | 浏览器功能Fuzz测试(如翻译功能) | 文件格式解析漏洞挖掘 | 新型客户端漏洞研究 |
