20.通用跨站脚本攻击漏洞(UXSS)
漏洞名称
通用跨点脚本漏洞(UXSS)
漏洞地址
https://ahbbs.anhunsec.cn/thread-351.htm
漏洞等级
中危
漏洞描述
常见的跨站脚本攻击漏洞(XSS)针对的是容易受到XSS攻击的网站或Web应用程序,因为客户端或服务端代码的开发不足。这些攻击以易受攻击的网页为主要先决条件,其影响始终围绕着易受攻击的网页本身的用户会话。换句话说,如果用户在打开基于 Web 的 CRM 应用程序时必须浏览到易受 XSS 攻击的网站,则攻击者只能访问受感染的会话,而无法访问 CRM 的会话。此行为是在浏览器中实现的安全功能的结果。UXSS保留了XSS的基本特征:利用漏洞,执行恶意代码,但是有一个主要区别:
与常见的XSS攻击不同,UXSS是一种利用浏览器或浏览器扩展中的客户端漏洞来生成XSS条件并执行恶意代码的攻击类型。当发现并利用此类漏洞时,浏览器的行为会受到影响,其安全功能可能会被绕过或禁用。
漏洞成因
不仅浏览器本身可能存在可利用的缺陷,而且还具有其众多扩展中的任何一个。大多数面向消费者的应用程序供应商构建浏览器扩展,以改善用户体验并利用有史以来最流行的活动:Web浏览。每种浏览器类型可用的浏览器扩展程序数量庞大,因此无法在安全性方面评估其质量以及包含可利用缺陷的可能性。
漏洞危害
攻击者不仅可以访问易受攻击网页上的受损会话,还可以访问在触发攻击时属于浏览器当前打开(或缓存)的网页的任何会话。 简而言之,UXSS不需要易受攻击的网页来触发,并且可以穿透属于安全,编写良好的网页的Web会话,从而在没有漏洞的地方创建漏洞。
不仅浏览器本身可能存在可利用的缺陷,而且还具有其众多扩展中的任何一个。大多数面向消费者的应用程序供应商构建浏览器扩展,以改善用户体验并利用有史以来最流行的活动:Web浏览。每种浏览器类型可用的浏览器扩展程序数量庞大,因此无法在安全性方面评估其质量以及包含可利用缺陷的可能性。
攻击的性质不需要利用易受攻击的网页,同时保留了访问不易受攻击的网页的可能性,这使得UXSS成为XSS频谱中最危险和最具破坏性的攻击类型之一。UXSS还针对易受攻击的浏览器加载项或插件,而不仅仅是浏览器本身,这一事实进一步强制执行。
修复方案
作为网站管理员或开发者,可以选择强迫浏览器下载 PDF 文件,而不是提供在线浏览等,或修改 Web 服务器配置的 header 和相关属性。
可以使用第三方插件解析pdf,不用chrome自带的pdf解析就行,
https://github.com/adobe-type-tools/cmap-resources
浏览器针对TXT/pdf等文件一般是直接打开,从而导致恶意的文件会被浏览器直接执行,因此解决方法就是告诉浏览器哪些类型的文件需要下载而不是直接打开.我们可以在nginx解析容器中通过反向代理可以直接过滤访问的url在指定的访问中添加header。
location /{
if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){
add_header Content-Disposition attachment;
}
}
测试过程
1.启动迅捷 PDF 编辑器打开一个 PDF 文件,或者使用“创建 PDF 文件”功能,通过将其他文档和资源转换为“可移植文档格式”来创建 PDF 文件。
1.单击左侧的“页面”标签,选择与之对应的页面缩略图,然后从选项下拉菜单中选择“页面属性”命令
选择“页面属性”命令
1.在“页面属性”对话框单击“动作”标签,再从“选择动作”下拉菜单中选择“运行 JavaScript”命令,然后单击【添加】按钮,弹出 JavaScript 编辑器对话框
填写 JavaScript 代码
1.在弹出的“JavaScript 编辑器”对话框中输入代码:
app.alert('XSS');
单击【确定】按钮保存 PDF 文件。
这里需要注意的是:
Adobe 支持自身的 JavaScript 对象模型,例如 alert(‘xss’)
必须被 APP 对象调用,因此变成了 app.alert('xss')
。这意味着,利用 JavaScript 进行攻击时只能使用 Adobe 所支持的功能。
关闭软件,直接打开刚才保存的 PDF 文件,JavaScript 代码即被执行。经过测试最新版本的 360 浏览器和谷歌浏览器支持。
现在,尝试把 PDF 文件嵌入到网页中并试运行。创建一个 HTML 文档,代码如下:
<html>
<body>
<object
data="test.pdf" width="100%" heigh="100%"
type="application/pdf"></object>
</body>
</html>
除了把 JavaScript 嵌入 PDF 文件中执行,还可以利用基于 DOM 的方法执行 PDF XSS。此类方法由 Stefano Di Paola
和 Giorgio Fedon
在第 23 届 CCC 安全会议中提出,大家可以参考论文 Adobe Acrobat。
Stefano Di Paola
把 PDF 中的 DOM XSS
称为 UXSS(Universal Cross-Site Scripting)
。事实上,任何支持 PDF 文件的网站都可能存在这种漏洞。
复测情况
已修复
点击后直接下载
测试人员
南风向晚
粉丝主动打赏看这里
全系列共105篇,持续更新中
原文始发于微信公众号(利刃藏锋):通用跨站脚本攻击漏洞(UXSS)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论