- Web漏洞分析与防范实战:卷1
- 赵伟 杨冀龙 知道创宇404实验室
- 473字
- 2025-01-22 14:15:53
1.3.6 应用程序的问题
2017年12月,macOS中的Help Viewer应用程序因XSS而出现的文件执行漏洞(CVE-2017-2361)被公开披露。此漏洞影响了macOS Sierra 10.12.1及其以下版本。攻击者可以利用该漏洞,通过恶意构造页面实施远程攻击。这是由应用程序引发的URL Scheme安全问题的一个典型例子(详情可参考链接[7])。
构造的PoC如下:
![](https://epubservercos.yuewen.com/1C0144/31724658703268506/epubprivate/OEBPS/Images/38_02.jpg?sign=1739463592-xrG1O0RAu7NEGh9t1rvon2l5KKqK50Bk-0-3fb2d0677d05d12de702d9f8a8c2089e)
显而易见的是,在这个漏洞利用过程中,操作系统和浏览器本身并未出现任何问题,真正的安全隐患出现在通过URL Scheme启动的应用程序上。深入分析这个利用链,我们可以发现几个“巧妙”之处。
❑利用URL Scheme中的Help协议,可以启动Safari.help应用程序。
❑通过双重URL编码技术,成功绕过了Help Viewer对路径的安全检查,从而打开一个能够执行JavaScript的页面。
❑使用Help Viewer的内置协议x-help-script来启动应用程序(概念验证代码中并未包含这一部分)。
实际上,URL Scheme功能的便捷性是操作系统、浏览器(或其他支持URL的应用)以及应用程序这三者相互协作的结果。要确保URL Scheme的功能安全可靠,我们必须对这三方的安全性有充分的把控。
需要注意的是,不同的操作系统对URL Scheme的实现方式各有差异,不同的浏览器有特有的处理机制,应用程序的处理方式也各不相同。这种多样化的组合有可能导致一些意想不到的安全问题。