什么是schemes,iOSURLSchemes与漏洞的碰撞组合案例?

iOS URL Schemes,这个单词对于大多数人来说可能有些陌生,但是类似下面这张图的提示我相信 大部分人应该都经常看见:  
今天要探究的就是:了解iOS URL Schemes、如何发现iOS URL Schemes、iOS URL Schemes结合漏洞案例 。  
iOS URL Schemes  
基本概念  
抛开iOS从URL Schemes的字面意思理解,就是地址协议(Scheme一般用来表示协议,比如 http、https、ftp 等),我们所熟知的HTTP协议的URL格式就是:  
http(s)://user:pass@host:port/path?query  
举个例子:http://gh0st.cn/,在浏览器输入这个地址,浏览器是使用HTTP协议向 gh0st.cn 请求,请求的资源就是 /。  
再来看一下iOS URL Schemes的一个例子:weixin://,你在Safari浏览器(Mobile)输入这个网址就会提示你在”微信”中打开链接吗?,然后由你选择”取消”或”打开”;和HTTP协议格式的URL访问流程进行对比,iOS URL Schemes 实际上就是启动一个应用的 URL,其访问流程是这样的:  
浏览器输入”weixin://” -> iOS识别URL Schemes ->询问是否跳转到微信 -> 确认跳转 -> 从浏览器跳转到微信端  
那么问题就来了,以上所述流程中的”iOS识别URL Schemes“,那么iOS该如何识别这段URL Schemes?iOS官方要求的是APP开发者需要自己定义自己APP的”URL Schemes”,只有APP本身定义(支持)了URL Schemes,iOS才会去识别然后跳转 。  
定义  
一个完整的 URL Schemes 应该分为 Scheme、Action、Parameter、Value 这 4 个部分,中间用冒号 :、斜线 /、问号 ?、等号 = 相连接 。  
举个例子:mst://jump?url=https://gh0st.cn/&title=test,它对应的4部分就是如下所示:  
Scheme(头): mst、Action(动作): jump、Parameter(参数): url、title、Value(值): https://gh0st.cn、test  
不同的部分之间有符号相连,它们也有一定的规则(和URL部分规则是一样的):  
理解  
以上述所举的例子:mst://jump?url=https://gh0st.cn/&title=test,来简单的说明下这段URL Scheme所产生的效果:  
1.跳转到”mst”所对应的APP  
2.在APP中执行jump动作(跳转网站)  
3.告诉APPjump动作所需的url和title参数,对应的值分别为https://gh0st.cn/和test  
可以理解为在APP应用中访问https://gh0st.cn/,网页标题为test 。  
寻找iOS APP的URL Schemes  
当你学会了如何寻找APP的URL Schemes,你就算发现了半个漏洞 。  
获取IPA包  
【什么是schemes,iOSURLSchemes与漏洞的碰撞组合案例?】基本的URL Schemes可以在iOS APP中的Info.plist文件中寻找到,而一般你是无法获取到APP的ipa包的,所以需要借助软件获取到这个包 。  
前提是你需要这两台设备:MacBook、iPhone,如果你只拥有一台iPhone的话也有办法去获取(需要Thor APP,具体方法自行寻找) 。  
Mac上先安装Apple Configurator 2,然后你需要在该软件中登录你的Apple账户:  
使用iPhone充电线将手机连接Mac,这时候软件中就会显示已经连接Mac的设备:  
假设你需要获取微信的URL Schemes,那么你的手机已经安装过了微信,然后使用该软件进行添加,选中设备点击添加按钮,选择应用:  
搜索微信,选中添加:  
当你下载完成看见如下提示的时候,在Finder中按快捷键Command+Shift+G,输入~/资源库/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps/  

什么是schemes,iOSURLSchemes与漏洞的碰撞组合案例?
  
文章插图  
软件下载的微信ipa文件就存在该文件夹中:  
进入文件夹将ipa文件复制到其他地方:  
什么是schemes,iOSURLSchemes与漏洞的碰撞组合案例?
  
文章插图  
然后回到Apple Configurator 2的提示,点击停止即可 。


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。