Web漏洞分析与防范实战:卷1
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.6 应用程序的问题

2017年12月,macOS中的Help Viewer应用程序因XSS而出现的文件执行漏洞(CVE-2017-2361)被公开披露。此漏洞影响了macOS Sierra 10.12.1及其以下版本。攻击者可以利用该漏洞,通过恶意构造页面实施远程攻击。这是由应用程序引发的URL Scheme安全问题的一个典型例子(详情可参考链接[7])。

构造的PoC如下:

显而易见的是,在这个漏洞利用过程中,操作系统和浏览器本身并未出现任何问题,真正的安全隐患出现在通过URL Scheme启动的应用程序上。深入分析这个利用链,我们可以发现几个“巧妙”之处。

❑利用URL Scheme中的Help协议,可以启动Safari.help应用程序。

❑通过双重URL编码技术,成功绕过了Help Viewer对路径的安全检查,从而打开一个能够执行JavaScript的页面。

❑使用Help Viewer的内置协议x-help-script来启动应用程序(概念验证代码中并未包含这一部分)。

实际上,URL Scheme功能的便捷性是操作系统、浏览器(或其他支持URL的应用)以及应用程序这三者相互协作的结果。要确保URL Scheme的功能安全可靠,我们必须对这三方的安全性有充分的把控。

需要注意的是,不同的操作系统对URL Scheme的实现方式各有差异,不同的浏览器有特有的处理机制,应用程序的处理方式也各不相同。这种多样化的组合有可能导致一些意想不到的安全问题。