导语:八年前,安全研究人员 ColinMulliner 发现并报告了苹果一个非常有趣的bug。尽管这个bug是在iOS系统Safari上,但它却仍然能够影响到电话拨打功能,而究其原因则是因为一些特殊的Web链接可以使用URLs进行电话。

八年前,安全研究人员 ColinMulliner 发现并报告了苹果一个非常有趣的bug。尽管这个bug是在iOS系统Safari上,但它却仍然能够影响到电话拨打功能,而究其原因则是因为一些特殊的Web链接可以使用URLs进行电话。那么这到底是怎么做到的呢?

我们平常看到的Web页面上的HTML链接通常是这样的:

<AHREF="https://nakedsecurity.sophos.com/">Read NakedSecurity</A>

A和/A分别代表了一个锚的开始和结束,这样则能够使得href 属性规定链接的目标。开始标签和结束标签之间的文字被作为超级链接来显示。

但事实上也会出现这样的链接:

<AHREF="tel:+441632960042">Call now</A>

那么这时候你就会发现当你点击这个链接时,如果你使用的设备能够打电话的话,这个前缀后面的号码就会被拨打出去。

比如在苹果手机的Safari上点击了这个链接,那么就会弹出选项让你去尝试拨打这个电话号码。而如果你选择了允许拨打,那么你会看到一个对话框,询问你是否真的想把电话拨打出去:

在2008年,Colin Mulliner发现还有很多方式可以导致出现另一种情况:链接被点击之后会跳过警告对话框,再没有进行任何询问的情况下电话程序自动把号码拨打出去。

Colin Mulliner所发现的方式中有一种是在ifarme中加入电话的url,使用一个电话号码来作为一个目标网页去进行刷新或者重定向,然后使用JavaScript改变已经加载的页面。

当他将一个电话号码演变成了一个被请求的页面,那么他就可以根据他的选择进行任意的拨号了。而如果你没有注意到你的电话程序正在拨号,而这时恰好有一个好的机会,那么你很可能就会错过它。

这一做法无论是恶作剧或者是骗子进行更多诈骗乃至进行一些收费电话都将会导致用户出现不必要的风险。

因此,在Colin Mulliner负责任的进行披露之后,苹果对其进行了修复。

另外一种可以影响电话拨打功能的漏洞

另外,Colin Mulliner其实还发现了一种方式来造成此种情况,即同时占用iphone的消息传递程序,比如发送一个很长的短信到一个非常长的电话号码。这样你就会发现你的手机在全力的去解决你当前的需求,而使得处理器没有足够的资源去对来电进行显示或者反应,进而让你立即取消呼叫。

而到了八年之后,Colin Mulliner注意到了媒体上所报道的一个故事,即一个美国男孩因为涉嫌使用一个网站去使得所有访问该网站的iphone手机都后台拨打了数百到数千个虚假的911电话。而这不得不使Colin Mullinerr想到了他在2008年所发现的那个bug。不幸的是,在经过深入的研究之后,他发现这个新的bug和他那个只是形式上稍微存在着差异。

原因是iOS的App Store中包含了某种微型浏览器可以用它来显示HTML内容,而不需要切换到Safari。这个微型浏览器组件被称为WebView,目前很多程序使用它的方式不尽相同,从显示授权协议到帮助你去预览网页链接并保持在你最初的应用程序中,你都会用到它。

Colin Mulliner表示,他的那个bug的POC事实上仍然可以或多或少的在WebView中进行工作。简而言之,当年苹果修复了Safari中的bug,但是对于WebView中的问题却没有及时的发现。

因此Colin Mulliner再一次的报告了这一问题,而这也导致iOS将再一次迎来更新。那么在这段时间为了防范这一问题,应用程序的开发人员应该在使用WebView时需要去添加代码来检测链接显示的内容并禁止使用电话。

最后对于用户来说不要惊慌,因为即使骗子使用穆力纳的技巧,也只能进行一两秒钟的呼叫,他们是没有办法让你无限期的出现这种情况。

源链接

Hacking more

...