【漏洞研究】[Web安全]BadURLScheme in iOS


*本文由黑哥最早发在 http://paper.seebug.org/  


0x01 前言


这个是今年我在KCON 2016上的演讲题目,这个漏洞我最早在今年的4月份报告给了苹果公司一直没有得到修复进度等反馈。在刚刚发布的iOS 10里已经不 受这个漏洞影响了,所以这里直接把细节再次和大家一起分享一下。

0x02 漏洞描述


这个漏洞主要是在iOS对于URL Scheme及其在UIWebView等控件的自动诊断识别等处理机制下导致跨应用XSS漏洞。

0x03 漏洞详情


iOS下的URLScheme存在几个特点:
  1. iOS 下URL Schemes全局有效且只需安装app即可生效。
  2. iOS下的URL Schemes的链接会被UITextView或者UIWebView的Detection Links属性识别为链接。

我们先看第2点的具体处理机制"UIWebView的Detection Links属性识别为链接",也就是说你输入的任何URL Scheme连接都会被解析html里的a标签的调用:
  1. scheme:// —> <a … href="scheme: "=""> …

对XSS漏洞很熟悉的同学,很可能就会想到2个方向:
  1. 通过双引号闭合使用事件来执行js 经过测试在上引号出现在scheme里不会被识别,所以这个思路不通。
  2. 利用java script:// 伪协议执行js

在主流的浏览器内核有2种方法调用,最常见的方法:
  1. <a href='java script:alert(1)'="">knownsec 404
还有另外一种格式方法很少有人正规使用:
  1. <a href='java script:="" %0a%0dalert(1)'="">knownsec 404

注意:与://的区别,也就是这种非常见的方式导致了很多程序的漏洞,比如前面曝光的iMessage的XSS漏洞(CVE-2016-1764)
所以这个"BadURLScheme"就是java script了,我们回到前面提到的iOS下的URLScheme的第一个特点,当用户安装了一个注册了java script这个URL Scheme的任意app后,如果其他的app里使用了UIWebView并且设置了Detection Links属性识别,那么在这些app里输入文本内容:
  1. java script://%0a%0dalert(1)

会被Detection Links属性解析为调用:
  1. <a dir="ltr" href="java script:="" %0a%0dalert(1)" x-apple-data-detectors="true"  x-apple-data-detectors-type="link"  x-apple-data-detectors-result="5">java script://%0a%0dalert(1)

成而导致这些app的XSS漏洞。

0x04 实际案列


要触发漏洞需要满足2个条件:首先用户需要下载安装一个注册了java script这个URL Scheme的app [只要求安装就行],一般的方法主要攻击者写一注 册了java script这个URL Scheme的app利用短信、微信等社会工程学手段引诱用户下载安装,另外的方法就是现有app市场上有对应注册了java script这个 URL Scheme的app,实际上这种案列也是有的,比如:
Maxthon Cloud Web Browser - Best Internet Explore Experience by Maxthon Technology Limited
也就是安装了Maxthon浏览器的用户很可能会受到影响。另外一个条件就是需要被攻击的app使用UIWebView并且设置了Detection Links属性,在我们实际 中发现满足这一条件的app是非常多的,比如:微信(已修复)、QQ邮箱(已修复)、outlook、印象笔记、知乎等

0x05 漏洞演示


http://v.qq.com/x/page/x0328nwv6ju.html

0x06 漏洞披露


在这个漏洞发现只是其实存在很多疑惑的对方:"A系统上安装了B家的软件导致了C家软件被攻击,请问这个是谁家的漏洞?应该报告给谁?"经过分析后我认为是iOS的漏洞,对于Maxthon来说他也算是正规使用URL Scheme,对于那些受影响比较大的C们我还是选择了同时报告
  • 2016.4.12 报告给[email protected] 4.15收到邮件确认收到报告,后续没有收到任何关于漏洞的修复计划。
  • 2016.4.11 报告给TSRC,得到了TSRC的积极反馈。并陆续修复处理了报告里提到的受BadURLScheme影响的app。
  • 2016.4.12 报告给MSRC,收到MSRC反馈改漏洞认定为iOS漏洞已经与苹果公司沟通,outlook一直没做处理
  • 2016.8.27 KCON 2016演讲《BadURLScheme in iOS》
  • 2016.9.14 苹果发布iOS 10升级,测试不受BadURLScheme漏洞影响
  • 2016.9.14 BadURLScheme in iOS细节对外全面公开

致谢
最后感谢 呆神、@ogc557、@windknown、@dm557、@Daniel_K4、吕耀佳(行之)、TSRC提供的各种帮助







貌似kcon的演讲主题?
是呢,黑哥kcon讲的,万万没想到你还认真听了

技术交流QQ群: 397745473
来自:https://xianzhi.aliyun.com/forum/read/113.html?fpage=16

评论

此博客中的热门博文

【黑产分析】互联网业务安全的黑灰产业链的故事

【黑产分析】Aveo恶意软件分析

【黑产分析】《中国互联网地下产业链分析白皮书》