这是支 fBao 绕过了通讯录权限还是另外一回事??

2021-06-28 08:25:14 +08:00
 cathedrel
前几天发现的,当时截了图之后就在忙其他事,现在才想起来发帖询问。

一台安卓机,出厂安卓 11 系统,用面具 root 了,上了 lsposed,xprivacylua 和 pro 都伺候起来了,然后:

1,那天想起来要给手机充值的时候随手点了一下支 fBao 充值界面右上方的那个联系人图标:i.imgur.com/Ftnp7JR.png

2,手机的通讯录直接冒出来了,我吓出一身冷汗:明明什么权限都没给,它怎么能调出通讯录的??:i.imgur.com/VQ0Z7uC.png

3,系统自身的权限设置和 xpl 里的设置:i.imgur.com/CyntH1l.pngi.imgur.com/o4kBlC2.png

4,感觉不对劲,然后我又试了一下在转账到支 fBao 界面能不能打开通讯录:i.imgur.com/yQdykMl.png

5,结果是提示我要给它通讯录的权限:i.imgur.com/FTmd0DD.png

我就奇怪了,充值界面的联系人和转账界面的联系人是两回事??在不给通讯录权限的情况下充值界面调出来的联系人列表点一下某个联系人支 fBao 不就拿到号码了吗?(我没点,不想让它拿到任何一位我的联系人),这是通讯录权限的漏洞吗??求解!
11766 次点击
所在节点    Android
32 条回复
w950888
2021-06-28 11:53:17 +08:00
这不是直接读取的通讯录,只是打开了通讯录 App,就跟在支付宝里可以打开淘宝一样
Tumblr
2021-06-28 12:23:34 +08:00
@xrxsh #12 原来是一脸懵。。。
看得我一年懵,然后看到里这条回户才缓应过来!
cdlnls
2021-06-28 12:29:05 +08:00
这种千万人盯着的软件不大可能做这种绕过权限的事情,就算技术上能绕过权限控制,我觉得正常的产品经理也不会愿意让你看到它能绕过(除非产品经理是笨蛋)
yuguorui96
2021-06-28 13:45:08 +08:00
支付宝打开通讯录 App 让你选择目标手机号,选择完了支付宝只能看到你选的那条记录的。

Don't be panic.
yuezy
2021-06-28 13:52:55 +08:00
这里只是调用了系统的通讯录,支付宝本身无权限读取数据
someonesnone
2021-06-28 14:54:16 +08:00
我猜是支付宝调用了系统的联系人列表接口,支付宝看不到所有的联系人,只能看到你选择好了返回的那一个联系人
ke2933
2021-06-28 17:34:17 +08:00
抖音一直禁止访问通讯录,还能给我推,牛的一批
dingdangnao
2021-06-28 22:25:13 +08:00
@ke2933 估计是访问了别人的通讯录,里面有你手机号。。。
cathedrel
2021-06-29 01:41:08 +08:00
@dream7758522
@araraloren
@JerryCha
@ikas
@w950888
@yuguorui96
@yuezy
@someonesnone

zfb 调出来的那个界面确实是手机系统的联系人界面,不是 zfb 自己的,但是这里又有一个问题了:我在 xpl 里面是限制了 zfb 获取“应用列表”的,依以前的使用经验来看,xpl 里面开启了这个限制之后一个 app 是无法得知 /不能调用另外一个 app 的,难道 zfb 绕过了 xpl 的这个限制??
yuguorui96
2021-06-29 08:05:13 +08:00
@cathedrel Android 的权限不是像你想的那样的方式工作的,支付宝也没有想绕过权限保护。

1. 唤醒其他 App 不需要获取应用列表的权限。

2. App 之间通过 Intent 通信。在一个 app 需要另一个 app 提供协助时,不会像你想的那样,先查有哪些 app,再打开那个对应的 app 。而是通过 intent 通信描述自己需要完成的功能,然后具有对应功能的 app 就会响应 intent 。

举个例子:
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);

这段代码就会将 intent 广播到系统,并由具有“PICK_CONTACT”功能的 App 响应。

3. 支付宝之所以需要应用列表权限是因为要反黑产,主要是用来检测 xposed,magisk,是否 root 等。
goodryb
2021-06-29 09:52:50 +08:00
我在想 支付宝 这三个字有这么敏感吗, 大大方方的打出来有啥问题
JerryCha
2021-06-29 10:00:20 +08:00
@cathedrel 唤起一个 picker 不需要知道 app 知道系统有哪些应用,通过 Intent 发起请求后由系统完成应用唤起、数据回调的操作。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/786137

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX