陌陌用户位置查询

最近对LBS类应用感兴趣,稍稍研究了一下,其中就拿陌陌来开刀研究了一下。至于为什么不拿微信,是因为微信传输数据的时候用的是二进制,而陌陌直接是json明文传输,难度较小。

首先发现陌陌在查找用户的时候,能看到你和对方的距离,这是一个带小数点的精确数字。当时就想,如果发送3个不同地点数据欺骗服务器,获取该用户到这3个点的位置,不就可以用三角测量法计算出对方的精确位置了么。当时小小兴奋了一下,然后就抄起家伙,抓包看下是否可以对服务器进行欺骗,然后再计算出对方位置。

为了方便操作,手机打开debug模式,机器上开个终端连接上去,使用自带的tcpdump抓包,然后再把抓到的包丢到电脑上用wireshark刷选查看。

链接手机,打开tcpdump抓包:

手机上速度输入用户的陌陌号查询对方信息,这里选的是10000,陌陌小秘书MM的号。

打开手机的sdcard,拷刚刚抓到的momo.pcap包,用wireshark瞄一下看抓到了虾米东西。momo用的是http传输,在这里只要求筛选出http的包就ok。

只有两个包,一个请求和一个答复,看下都有些什么内容。

图中红框标出1的部分是传递的参数,只有一个字段cookie=session,并没有传送用户的位置,那这个距离如何计算出来的?接着看红框标出2的部分,这里出现好玩的东西了,陌陌直接把对方的坐标发了果然, 然后在手机本地计算出用户之间的距离,汗,这不是在泄露用户隐私么?欺骗获取距离然后三角测量算法用不上了,已经直接获取到对方坐标了。

这个坐标直接拿到google地图或者百度地图上搜索的话,会有偏差,因为这两个地图受政策影响,都做了偏移,用户是无法直接搜索到精确坐标的。但是网上有很多偏移校正算法,google一下,找到了百度的偏移校正算法,对坐标校正后,自己对比了一下,发现还是存在100m左右的偏差,这个偏差和gps的精确度相差太远。经过进一步的暴力反编译分析后发现,不论是陌陌还是微信,基本都是在使用基站定位,所以这个值并不是很准确。

同时发现陌陌在使用基站定位的同时,会收集用户附近ap的mac地址数据,不明白干嘛用的,难道是建立ap数据库,然后其他用户就可以使用ap定位?

最后在今天写了个小程序,丢到新浪SAE上,默认进去看到的红点是陌陌小秘书MM的位置:D,想查谁的就输入对方陌陌好查询就ok,地图坐标经过了校正。新浪SAEhttp://momosearch.sinaapp.com/上放了一个,想玩就抓紧时间,陌陌不知道什么时候会修改API接口。

附上刚刚更新的陌陌小秘书MM位置

声明:严谨非法使用,仅供娱乐。

6 Comments

  1. “如果发送3个不同地点数据欺骗服务器,获取该用户到这3个点的位置,不就可以用三角测量法计算出对方的精确位置了么。”这个不理解。。太笨了吗

  2. 刚抓了个包试试,貌似陌陌已经加密了,不知道楼主还有没有其它方法

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.