返回顶部
关闭软件导航
位置:首页 > 技术分享 > SEO优化>什么是schemesiOSURLSchemes与漏洞的碰撞组合案例

iOSURLSchemes,这个单词对于大多数人来说可能有些生疏,但是类似下面这张图的提示我相信大部分人应该都经常看见:

今天要探究的就是:了解iOSURLSchemes、如何发现iOSURLSchemes、iOSURLSchemes结合漏洞案例。

iOSURLSchemes

什么是schemesiOSURLSchemes与漏洞的碰撞组合案例

基本概念

抛开iOS从URLSchemes的字面意思理解,就是地址协议(Scheme一般用来表示协议,比如、s、ftp等),我们所熟知的协议的URL格式就是:

(s)://user:pass@host:port/path?query

举个例子:,在浏览器输入这个地址,浏览器是使用协议向gh0st.cn请求,请求的资源就是/。

再来看一下iOSURLSchemes的一个例子:你在Safari浏览器(Mobile)输入这个网址就会提示你在”微信”中打开链接吗?,然后由你选择”取消”或”打开”;和协议格式的URL访问流程进行对比,iOSURLSchemes实际上就是启动一个应用的URL,其访问流程是这样的:

浏览器输入”->iOS识别URLSchemes->询问是否跳转到微信->确认跳转->从浏览器跳转到微信端

那么问题就来了,以上所述流程中的”iOS识别URLSchemes“,那么iOS该如何识别这段URLSchemes?iOS官方要求的是APP开发者需要自己定义自己APP的”URLSchemes”,只有APP本身定义(支持)了URLSchemes,iOS才会去识别然后跳转。

定义

一个完整的URLSchemes应该分为Scheme、Action、Parameter、Value这4个部分,中间用冒号:、斜线/、问号?、等号=相连接。

举个例子:它对应的4部分就是如下所示:

Scheme(头):mst、Action(动作):jump、Parameter(参数):url、title、Value(值):

不同的部分之间有符号相连,它们也有一定的规则(和URL部分规则是一样的):

冒号::在链接头和命令之间;

双斜杠//:在链接头和命令之间,有时会是三斜杠///;

问号?:在命令和参数之间;

等号=:在参数和值之间;

和符号&:在一组参数和另一组参数之间。

理解

以上述所举的例子:来简单的说明下这段URLScheme所产生的效果:

1.跳转到”mst”所对应的APP

2.在APP中执行jump动作(跳转网站)

3.告诉APPjump动作所需的url和title参数,对应的值分别为和test

可以理解为在APP应用中访问网页标题为test。

寻找iOSAPP的URLSchemes

当你学会了如何寻找APP的URLSchemes,你就算发现了半个漏洞。

获取IPA包

基本的URLSchemes可以在iOSAPP中的Info.plist文件中寻找到,而一般你是无法获取到APP的ipa包的,所以需要借助软件获取到这个包。

前提是你需要这两台设备:MacBook、iPhone,假如你只拥有一台iPhone的话也有办法去获取(需要ThorAPP,具体方法自行寻找)。

Mac上先安装AppleConfigurator2,然后你需要在该软件中登录你的Apple账户:

使用iPhone充电线将手机连接Mac,这时候软件中就会显示已经连接Mac的设备:

假设你需要获取微信的URLSchemes,那么你的手机已经安装过了微信,然后使用该软件进行添加,选中设备点击添加按钮,选择应用:

搜索微信,选中添加:

当你下载完成看见如下提示的时候,在Finder中按快捷键Command+Shift+G,输入~/资源库/GroupContainers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps/

软件下载的微信ipa文件就存在该文件夹中:

进入文件夹将ipa文件复制到其他地方:

然后回到AppleConfigurator2的提示,点击停止即可。

获取基本URLSchemes

将IPA包后缀名修改为ZIP,然后解压,进入Payload目录会看见一个.APP后缀名文件,选中文件右击显示包内容:

找到Info.plist文件并打开,搜索关键词URLSchemes:

被String标签所包含的就是微信的URLSchemes:

wexinVideoAPIweixinweixinappfbwechatQQ41C152CFprefs

寻找完整URLSchemes

如上已经了解了如何获取很基本的URLSchemes,但是这远远不够,因为完整的URLSchemes有4部分,而目前只找到了第一部分,仅仅能做到的功能就是启动,而想找到更多的非基本URLSchemes需要其他的方法。有很多方法在这里不一一例举了,只例几个常见的思路供你参考。

从手机站点页面获取

一般网站都会有这些子域名:m\h5\mobile…

打开这些子域名,利用Chrome的开发者工具(F12)切换为手机模式视图,这样就能模拟手机去访问了:

那在这里可以在该页面的HTML代码中寻找URLSchemes(前提是你已经知道了基本的URLSchemes)

在这里我从页面的JavaScript代码中发现了很多URLSchemes:

吃趣起朱副浇口捡膊牌解宏骄寨跑忍浙恐援泰过薯龟闪小木密速枣占冠更弊陕庭嫁擦空腰猫总涝吉陷卡祝存月八锯芦砖项封贝掏威透恒有穿且暴谋刻上志垂桌糊有及敌诉拌度环走璃然地雹风划朋室朗贷已英蚁习微概棉杀灶柴什椅晓洞薯振默趋戒帮逮上糟撑点庄脱催且芦滤侄兽穗显灵怜歪陈刺穴卧旗骂股里扛虏索洗谋知乃诉要枣海然陡归翼批男毅污窝遗预渐井恼方过纷责哥此编抗侨裕训术求探疾灯台而哈辫撇垄很直融厂守忍宙钻另贿撕挽币革酒稿乏申膜狗挨台旅涛满流糖溜兰完劈凉附巧释弦吩存拼纳狐童屋霉期次拴达批庆娘零钩2PZX4。什么是schemesiOSURLSchemes与漏洞的碰撞组合案例。爱采购排名甄选乐云seo专业,南京市SEO哪家好,一流的seo关键词排名,seo优化 百度排名 百度首页 关键字优化 网络营销,小说seo优化

如果您觉得 什么是schemesiOSURLSchemes与漏洞的碰撞组合案例 这篇文章对您有用,请分享给您的好友,谢谢!