V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nikoo
V2EX  ›  问与答

神奇!在屏蔽所有权限后支付宝 app 仍然能定位到你的详细地址

  •  1
     
  •   nikoo · 2016-12-22 01:11:23 +08:00 · 13933 次点击
    这是一个创建于 2923 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Android 4.1.1 手机定位、蓝牙、 NFC 等全部关闭,无 SIM 卡,飞行模式下仅开 WIFI 后连接至科学的路由器获得异地 IP
    手机系统中针对支付宝 app 禁止其所有权限

    此时打开支付宝 app ,在"我的信息"页面中找到个人资料并点我的地址,这时候会显示:定位中。。。
    几秒后即成功定位到了实际位置

    此时 SS server 端日志显示支付宝 app 进行了如下访问:
    2016-12-21 21:50:02 INFO connecting apilocate.amap.com:80
    2016-12-21 21:50:02 INFO connecting restapi.amap.com:443
    2016-12-21 21:50:02 INFO connecting apilocate.amap.com:80
    2016-12-21 21:50:02 INFO connecting mdap.alipaylog.com:80
    2016-12-21 21:50:03 INFO connecting alisec.taobao.com:80

    系统应用的权限监控日志中有如下记录( 21:57 的为一次点击产生的权限请求,最后一条 21:54 是测试的请忽略)


    以上请求虽然全部被拒绝,然最终支付宝 app 仍然能成功获得你的准确地址!并且在权限监控日志中没有任何记录

    请教是如何实现的?好可怕啊
    70 条回复    2016-12-23 17:46:58 +08:00
    ICL
        1
    ICL  
       2016-12-22 01:13:24 +08:00
    异地那个 IP 已经默认是你的位置了?比如之前百度高精度的数据?
    nikoo
        2
    nikoo  
    OP
       2016-12-22 01:22:01 +08:00
    @ICL 谢谢,异国 IP 有可能被定位成我家的地址吗?上哪能确认一下?

    有没方法可以在 OpenWrt 抓下包之类的看下发至 apilocate.amap.com 的请求包内容?
    ltux
        3
    ltux  
       2016-12-22 01:27:13 +08:00 via Android   ❤️ 1
    路由器 MAC 地址定位
    billlee
        4
    billlee  
       2016-12-22 01:27:24 +08:00
    有可能是根据 WLAN 热点定位的
    yexm0
        5
    yexm0  
       2016-12-22 01:28:39 +08:00   ❤️ 3
    wwqgtxx
        6
    wwqgtxx  
       2016-12-22 01:35:58 +08:00 via iPhone
    可以通过调用所有其他阿里系的软件定位,以及使用了阿里系 sdk 的 app 进行定位
    另外就是你连着 wifi ,想获取位置信息直接用路由器 mac 地址结合信号强度就能三角定位
    nikoo
        7
    nikoo  
    OP
       2016-12-22 01:38:25 +08:00
    @yexm0 谢谢,测试了,这两个定位异地 IP 都是异地,并不是我的位置

    @billlee @ltux 路由是科学路由啊,手机终端如何能获得 路由器 MAC 地址定位?有没办法避免?
    bao3
        8
    bao3  
       2016-12-22 01:38:54 +08:00
    你的 wifi + 你的 MAC 出卖了你,加上辅助定位,能判定出位置来是正常的,毕竟就算你给了 GPS 权限,但你人在家里,最终仍然是 wifi + 辅助定位。
    nikoo
        9
    nikoo  
    OP
       2016-12-22 01:40:05 +08:00
    @wwqgtxx 谢谢,手机上只有一个支付宝没其他阿里系,如何能禁止手机获取路由器 mac 地址?
    huangtao728
        10
    huangtao728  
       2016-12-22 01:42:16 +08:00 via Android
    @yexm0
    请问 dwz.nz 这个是调用了百度的官方接口吗?能否给个文档地址?
    nikoo
        11
    nikoo  
    OP
       2016-12-22 01:55:34 +08:00
    @bao3 谢谢,手机系统设置中地址定位明确有: GPS 定位 与 WLAN 定位,是都关闭的状态
    这种情况下仍不能避免某个 app 去获取路由的 mac 地址来进行定位吗?
    Tink
        12
    Tink  
       2016-12-22 02:11:03 +08:00 via iPhone
    这很明显是你的路由器 MAC 啊,很多很多 app 都靠这个辅助定位的,包括 Google maps 等等
    yexm0
        13
    yexm0  
       2016-12-22 02:11:45 +08:00   ❤️ 2
    @huangtao728 官方文档的话以前还是有的,不过前几个星期出事后就给撤了.
    http://lbsyun.baidu.com/index.php?title=webapi/high-acc-ip
    下面这篇文章的评论区里也有一些还能用的定位 api 提供
    http://www.freebuf.com/sectool/117164.html
    nikoo
        14
    nikoo  
    OP
       2016-12-22 02:19:01 +08:00
    @Tink 谢谢,我想确认一下,他是获得了
    1 、我的科学路由器的 MAC 地址
    2 、获得了我周围邻居的 WIFI 名字以及 MAC 地址

    是哪一个?如果现在在淘宝买个新路由,从到手开始即部署好 SS ,这样可以解决这个问题吗?
    ltux
        15
    ltux  
       2016-12-22 03:02:15 +08:00 via Android
    @nikoo 他获取了你所在的区域有信号的所有 WIFI 的 SSID 和 MAC 地址。这个权限叫 WIFI 扫描。要解决这个问题,你装一个叫 WIFI Analyzer 的 app ,研究清楚怎么限制这个 app 让他不能获取你周围 WIFI 的 SSID 和 MAC 地址,然后你就知道该怎么限制其他 app 了。
    ltux
        16
    ltux  
       2016-12-22 03:08:57 +08:00 via Android
    另外,不管你是不是科学路由,只要连接上该路由,手机就必然能获取路由的 MAC 地址,要不然二层怎么通信?
    ltux
        17
    ltux  
       2016-12-22 03:22:58 +08:00 via Android
    app 最少也是能获取你已连接的 WIFI 的 SSID 和 MAC 的。谷歌不给接口,而你的 ROM 又没有实现相应的功能,那就没办法限制 app 嘞。
    或许可以试试万能的 xposed 框架。不过我并没有用过这个框架,希望有用过人来说说 xposed 能不能实现楼主的需求。
    ltux
        18
    ltux  
       2016-12-22 03:29:21 +08:00 via Android
    刚才说的 Wifi Analyzer ,你可以试试看禁止该 app 所有权限以后,看他依旧能获取那些 WIFI 信息。
    vacker
        19
    vacker  
       2016-12-22 03:32:48 +08:00 via Android
    iPhone 试试看什么效果
    R18
        20
    R18  
       2016-12-22 06:11:23 +08:00 via Android
    wifi 定位根据的是你周围的 wifi 环境
    dong3580
        21
    dong3580  
       2016-12-22 08:07:58 +08:00 via Android
    你换到安卓 6 就不行了。
    fox0001
        22
    fox0001  
       2016-12-22 08:33:45 +08:00 via Android
    有没有可能是从历史纪录获取以前的定位信息?
    honeycomb
        23
    honeycomb  
       2016-12-22 08:35:00 +08:00 via Android
    没有任何权限的时候,应用可以获得:

    1 ,当前 IP 地址
    2 ,当前所连接的 WiFi 的 bssid/ssid

    只要有 2 就能获得相当好的定位。
    如果你是在公共场所如公司,那么 1 往往也有很好的定位精度

    如果你挂在移动网络并用 xprivacy 阻止 2 ,会更有效。
    imn1
        24
    imn1  
       2016-12-22 08:46:04 +08:00
    不要用只有一个 ip 的梯子上知道你详细信息的网站
    除非你觉得对方知道你的信息也没什么用 (别忘了还可以卖)
    invalidtoken
        25
    invalidtoken  
       2016-12-22 08:51:47 +08:00 via iPhone
    系统太老,,新的系统拒绝定位权限时已经不允许读取任何 WiFi 信息了
    Tink
        26
    Tink  
       2016-12-22 08:53:14 +08:00 via iPhone
    @nikoo 都获得了
    Quaintjade
        27
    Quaintjade  
       2016-12-22 09:40:00 +08:00 via Android
    @invalidtoken
    和系统版本没什么关系,看的是 APP 用的 API 版本。 WiFi Analyzer 在 6.0.1 系统上照样能获得所有附近 WLAN 信号信息。
    honeycomb
        28
    honeycomb  
       2016-12-22 09:51:51 +08:00 via Android
    @nikoo
    它只获得了你的手机当前正连接着的那个无线局域网接入点的 SSID/bssid 。

    它无法获取这以外的 WiFi 信息。
    honeycomb
        29
    honeycomb  
       2016-12-22 09:54:05 +08:00 via Android
    @ltux
    没有定位权限的时候是无法进行 WiFi 扫描 /蓝牙扫描的。

    主要问题还是 bssid ( mac )/SSID
    honeycomb
        30
    honeycomb  
       2016-12-22 09:54:55 +08:00 via Android   ❤️ 1
    @Quaintjade 那是因为它用的 SDK 太低,你到 appops 里把它的 WIFI_SCAN 调整成 ignore
    Mdrights
        31
    Mdrights  
       2016-12-22 09:56:25 +08:00 via iPhone
    也貢獻一個大數據,據說是微信的: qkap.com
    passol
        32
    passol  
       2016-12-22 10:00:54 +08:00
    @Mdrights 404 ?
    honeycomb
        33
    honeycomb  
       2016-12-22 10:01:03 +08:00 via Android   ❤️ 1
    @Quaintjade 你让它用不低于 target SDK2 打包就不会有这个问题。

    因为旧版应用只声明了 WIFI_SCAN 而没有声明定位权限,因此运行时权限无法应对,但 appops 可以。
    Mdrights
        34
    Mdrights  
       2016-12-22 10:04:39 +08:00 via iPhone
    也是時候安利一個《在線匿名手冊》了: https://github.com/mdrights/Digital-rights/blob/master/README.md

    歡迎指正
    lfk0000
        35
    lfk0000  
       2016-12-22 10:11:35 +08:00 via Android
    新买个路由器,然后把手机和路由器放进同一个电磁屏蔽笼,以屏蔽手机接受到其他的 ssid 广播......这样应该就找不到你了...
    billytv
        36
    billytv  
       2016-12-22 10:27:03 +08:00
    邻居手机上的流氓软件已经把你的 wifi 信息记录了
    Mdrights
        37
    Mdrights  
       2016-12-22 10:28:17 +08:00 via iPhone
    itqls
        38
    itqls  
       2016-12-22 10:41:00 +08:00
    iPhone 试了,关掉定位后, 支付宝没法定位
    learnshare
        39
    learnshare  
       2016-12-22 11:17:24 +08:00
    断网即可
    pagxir
        40
    pagxir  
       2016-12-22 11:40:16 +08:00 via Android
    Wifi 关掉,然后通过蓝牙(用另一部 android 手机开蓝牙热点)上网。并且确保周边没其他的蓝牙信号,开蓝牙热点的手机要个干净的系统。
    Mdrights
        41
    Mdrights  
       2016-12-22 11:49:59 +08:00 via iPhone
    @pagxir 好麻煩😓
    看來用 TAILS / whonix 也不一定保證⋯⋯
    zhangsimon
        42
    zhangsimon  
       2016-12-22 12:11:03 +08:00
    Android 一大票 app 都这么干,简直了
    huangtao728
        43
    huangtao728  
       2016-12-22 12:41:35 +08:00 via Android
    @yexm0
    受教了,谢谢!
    Quaintjade
        44
    Quaintjade  
       2016-12-22 12:54:18 +08:00 via Android
    @honeycomb
    Play 上有好几个 App Ops ,有哪个可以不用 root 吗? 6.0.1 系统,试了个号称不用 root 的,结果只是打开了设置。
    UnknownR
        45
    UnknownR  
       2016-12-22 13:06:22 +08:00
    之前看到个博客,测试了百度地图的定位,是根据连路由的移动设备中的 gps 信息推算出来的,手机关闭所有定位方式的话应该是读取了其他网络设备中的地址信息,你可以去别的地方连下 wifi ,估计就定位不到你了
    honeycomb
        46
    honeycomb  
       2016-12-22 13:10:01 +08:00 via Android
    @Quaintjade coolapk 上有人出了一个(已经上架 play ),需要 root
    iRiven
        47
    iRiven  
       2016-12-22 13:15:38 +08:00 via Android
    线下付款不就可以定位
    mazyi
        48
    mazyi  
       2016-12-22 15:36:39 +08:00
    应该可以用换苹果来解决
    skylancer
        49
    skylancer  
       2016-12-22 15:57:43 +08:00
    @yexm0 出了什么事啊..?
    panda1001
        50
    panda1001  
       2016-12-22 16:04:35 +08:00 via Android
    楼主看看 wifi 定位的原理
    Jasmine2016
        51
    Jasmine2016  
       2016-12-22 16:56:15 +08:00
    @vacker
    @mazyi
    @itqls
    iOS 9.3.3 (已越狱),支付宝 9.2.0 版本(我还特意用的老版本用来防止流氓行为), 支付宝什么权限都没有给,打开之后直接能显示 1000 米之内的外卖店。
    itqls
        52
    itqls  
       2016-12-22 17:03:05 +08:00
    @Jasmine2016 有历史位置缓存的.... 关掉定位后,你重新定位他没法获得你现在的位置的
    mazyi
        53
    mazyi  
       2016-12-22 17:12:02 +08:00
    @Jasmine2016 请重新安装支付宝
    yexm0
        54
    yexm0  
       2016-12-22 17:46:50 +08:00   ❤️ 1
    @yexm0 补充多两个用百度数据定位的:
    https://tool.ddnpc.com/ip.php
    (注:右侧这个网站有背景音乐) http://v.rpsofts.com/ip/
    zhouquanbest
        55
    zhouquanbest  
       2016-12-22 17:46:51 +08:00
    支付婊还能和他的航母战斗群通信 获取各种信息
    你这算啥

    珍爱生命 只在 taobao 时用支付婊
    grayon
        56
    grayon  
       2016-12-22 18:03:35 +08:00
    为什么不试试蜂窝数据+科学上网呢
    不过还可以通过基站定位,这个应该要定位权限的吧
    yexm0
        57
    yexm0  
       2016-12-22 18:06:41 +08:00   ❤️ 1
    @skylancer /t/325447 自从被这个帖子曝光之后没过几天这个功能就下线了.

    P.S:另外再补充多个:http://155.254.35.131:8888/
    imydou
        58
    imydou  
       2016-12-22 20:14:42 +08:00
    路由器 mac 地址定位真的很厉害。
    我从青岛带路由器到济南出差,去了以后刷过固件,定位依旧显示青岛的地址,精确到楼号
    invalidtoken
        59
    invalidtoken  
       2016-12-22 20:55:06 +08:00 via iPhone
    @Quaintjade 我指的是国产这些定制 UI 的版本,新一点的拒绝定位之后一般都会拒绝读取 WiFi 和基站信息
    publicAdmin
        60
    publicAdmin  
       2016-12-22 21:01:03 +08:00
    @yexm0
    你的 ip:xxxxx 已被记录 你要查询的 ip 是:8.8.8.8. 查无此数据
    查询其他 ip 方法: http://155.254.35.131:8888/?ip=8.8.8.8
    Python BaiduApi by linhai 2016 年 12 月 6 日
    yexm0
        61
    yexm0  
       2016-12-22 21:52:04 +08:00
    @publicAdmin 😂用 54L 那两个吧
    zingl
        62
    zingl  
       2016-12-22 23:24:24 +08:00
    开源固件有必要引入 MAC 随机化机制了
    BluePadge
        63
    BluePadge  
       2016-12-23 00:27:25 +08:00 via Android
    @Quaintjade 我做了个免 root 的正在自用,需要的话,你可以试用一下
    huangchendz
        64
    huangchendz  
       2016-12-23 02:47:30 +08:00 via Android
    BAT 的软件, PLAYstore 的软件你值得拥有
    skylancer
        65
    skylancer  
       2016-12-23 08:36:41 +08:00 via Android
    @yexm0 我也是因为那个帖子才知道还有个高精度定位.. 还以为是出了什么别的事...
    honeycomb
        66
    honeycomb  
       2016-12-23 09:53:30 +08:00 via Android
    @invalidtoken
    只要是 target API 大于 23 的就不会让读的。
    低于 23 的如果声明了定位权限,也不会让读。
    低于 23 的,仅声明获取 WiFi 信息,运行时权限管不到它(因为没有定位权限),但总是可以用 appops
    Jasmine2016
        67
    Jasmine2016  
       2016-12-23 10:24:01 +08:00
    @itqls
    @mazyi
    从来没赋予支付宝任何定位的权限。不过我猜他可能是通过路由器 /基站定位的。这么说来, iOS 的定位权限仅限于阻止 App 调用手机的 GPS 定位权限么。。
    Tony2ee
        68
    Tony2ee  
       2016-12-23 10:48:46 +08:00
    有没有可能是自家的全家桶亲戚应用后台请求了你的位置传给了支付宝?
    itqls
        69
    itqls  
       2016-12-23 11:25:37 +08:00
    @Jasmine2016 再次测试,如果我在设置-隐私-支付宝-永不, 关闭它的定位权限, 它没办法定位我现在的位置.
    但是它根据你支付过的商家 /开启过定位的地方, 会给你推荐附近商家.
    iOS 定位权限 包括 GPS/基站 /蓝牙 /WiFi
    mazyi
        70
    mazyi  
       2016-12-23 17:46:58 +08:00
    @Jasmine2016 基站的权限也是手机的,路由器 mac 地址这没有办法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2414 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 00:24 · PVG 08:24 · LAX 16:24 · JFK 19:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.