1
sophymax 2015-03-23 16:49:53 +08:00 1
iOS也别乱装东西了.... ,我自己的iOS设备也一直没任何支付类的app,不放心 。 不过 , 这个漏洞多年前就很多人发现了 , 只不过大家不把它当漏洞 , 当成了取巧的手段玩的正High , 对于一个这么容易的漏洞 , 微信和支付宝责任还是挺大的 , 费尽心机用各种伎俩(红包、话费等)让用户绑定支付方式 , 安全就应该保证 , 苹果留这个功能本意也不是让第三方app调用支付宝等来支付的 , 仅仅是为了方便而已 , 是这些公司自己想着各种取巧方法来让用户更快捷地花钱的
|
2
kacong 2015-03-23 16:59:28 +08:00
oh, my 安全需要在心中,需要design thinking 安全是个系统工程。
|
3
sobigfish 2015-03-23 17:21:21 +08:00
貌似group的Bundle ID是需要唯一的,这个可以拿来用.
|
4
babyname 2015-03-23 17:21:24 +08:00
钓鱼。。
首先你得将这个app通过审核,并且安装到用户的手机上。 |
7
hjc4869 2015-03-23 17:36:13 +08:00 via iPhone
@babyname 商店不会审核scheme,也没有对盗用别人的scheme作出任何规范,更没有scheme保留机制,过审核不是问题。前提是你的app本身有能够过审核的足够的功能。
|
8
xiaket 2015-03-23 18:27:29 +08:00
个人感觉iOS系统对url scheme的管理还是太差了... 这儿在设计上应该分隔开.
|
9
dingyaguang117 2015-03-23 18:29:20 +08:00
@sophymax 提升用户体验也无可厚非,当然要在保证安全的前提下
|
10
GPU 2015-03-23 18:35:42 +08:00
非工程师不是看得很懂
|
11
vincentxue 2015-03-23 19:11:45 +08:00 1
这是个很老的问题了,多年前 SO 上就有相关的讨论,也有很多的相关博文。
说句装逼的话,从我以前了解 URL Scheme 之后我就想到这种情况的可能性,我当时验证的情况是多个同样的 URL Scheme App 同时安装的话,总是会打开最新安装的那个。刚才我又去试了试 iOS 7.1 和 8.1,也是同样的情况。 然后我读了相关的文档才知道这种情况确实存在,但苹果已经告诉开发者要注意这个问题,当时文档上好像是说不确定会打开哪一个。 苹果有专门的文档讲使用 URL Scheme,并且人家说了不保证 URL Scheme 唯一性。 所以我个人认为这是一个故意的设计,压根就不是漏洞,如果是漏洞,怎么可能这么多年了还不修复,被劫持完全是开发者没有熟读开发文档造成的。 附带几篇文章: http://www.dhanjani.com/blog/2010/11/insecure-handling-of-url-schemes-in-apples-ios.html https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1 https://developer.apple.com/library/ios/documentation/Security/Conceptual/SecureCodingGuide/Articles/ValidatingInput.html#//apple_ref/doc/uid/TP40007246-SW5 |
12
sumhat 2015-03-23 19:16:58 +08:00
和乱装东西没关系,只要不使用 URL Scheme 就行了,全部扫码支付。
|
13
shippo7 2015-03-23 20:07:51 +08:00 1
实际用作攻击难度还是不小,毕竟先要引导用户去安装伪应用。但是厂商之间可以互相劫持 URL Scheme 耍流氓,用自家产品阻碍对方产品的使用。
|
14
weisoo 2015-03-23 21:13:06 +08:00
@vincentxue 仔细看完了这个漏洞的说明,以文章中说到的美团和支付宝的例子,美团和支付宝没有任何办法通过完善自己的程序来避免这种漏洞,除非不使用URL Scheme。这个不是美团和支付宝开发者能力问题。
|
15
wzxjohn 2015-03-23 21:49:24 +08:00 1
@weisoo 你看的真仔细啊。。。别人解决方案里连代码都给出来了的两个方案都被你无视了是么?
2. 针对第三方应用 既然苹果不发布补丁保护第三方应用。第三方应用就没有办法了么? 不是的,这里至少有两种方法可以检测自己应用的 URL Scheme 是否被 Hijack: 后面的就不贴了自己去原帖看吧。。。 |
16
aqqwiyth 2015-03-23 22:03:53 +08:00
我自己也鼓捣过URL Scheme尤其是在PC上就大量用了,但是视屏中有一段获取到帐号密码的我就不解了。
如果劫持了URL Scheme那么应该从美团跳转不到支付宝才是 |
18
xwsoul 2015-03-23 22:35:32 +08:00
恭喜ios也多了一个坑....在我的心里和 安卓更进一步了...
|
19
paradoxs 2015-03-23 23:08:17 +08:00
实际上是没什么危害的。
没越狱,哪里来的FAKEalipay呢? |
20
sneezry 2015-03-23 23:22:31 +08:00 via iPad
@paradoxs 少年,你发评论要仔细读文章啊,战旗他们离那个FakeAlipay就差读密码这一步了啊,想读分分钟就读了啊
|
21
paradoxs 2015-03-23 23:29:19 +08:00
@sneezry
1.实际上现在最新版本的IOS alipay,在美团跳转过去的时候,只需要输入6位的支付密码就可以完成付款。 2.demo那个hijack视频,太过诡异了,跳转过去还要输入全部的账号密码,肯定是不行的,一下就被识破了。 3.最关键的还是要用户手机里面有一个FAKEalipay,这个才是最关键的,这个条件非常非常的难以实现! |
22
Automan 2015-03-24 03:44:29 +08:00
按我的理解,跳转应该也是一个token啊,明文密码怎么可能传过去?
|
23
hebeiround 2015-03-24 08:12:20 +08:00 via iPhone
也就是我我可以通过伪造URL Scheme可以欺骗美团告诉它我支付了,但事实上并没有支付。
|
24
eternityz 2015-03-24 09:25:51 +08:00
@hebeiround 支付结果的确认是需要服务器之间进行校验的 (至少我实现过的支付宝流程是这样)
|
25
eternityz 2015-03-24 09:28:15 +08:00
@paradoxs 不需要越狱,可能你从 app store 安装的某个类似小草壁纸这样的 app 就注册了 alipay 的 url scheme
|
26
vincentxue 2015-03-24 09:35:30 +08:00
|