地理数据的背叛:坐标风暴漏洞讲解
目录
**注意:该漏洞属于实验型漏洞,是地图大师挖掘的个别漏洞案例,未验证存在普适性(说人话就是没验证是否可以通杀,大概率不能)所以你挖不到同样的,不要蛐蛐大师!!
一、之前挖洞忽略的细节:坐标
前几天在挖洞过程中,意外诞生了一个新的小思路。
它和地图有关,但并不是之前分享过的地图 API 泄露方向,而是一个独立的、围绕坐标的小技巧。
这次想和大家详细讲讲,希望能为各位师傅挖洞时提供一些新的思考角度。
在以往挖 SRC 的过程中,经常能在接口返回包中看到各种地理定位信息。
有经验的师傅可能会立刻联想到地图 API key 泄漏的挖掘技巧——但今天,我们要把注意力放到另一个容易被忽略的地方: 经纬度坐标本身 。
小知识复习:什么是经纬度?
- 经纬度是一种基于地球表面的全球坐标系,用于精确描述任意位置。
- 通常表示为
(纬度, 经度)
的格式。
例如:
- 北京的坐标:
(39.9042° N, 116.4074° E)
- 纽约的坐标:
(40.7128° N, 74.0060° W)
中国大陆的经纬度范围:
- 经度 :73°33′E ~ 135°05′E
- 纬度 :3°51′N ~ 53°33′N
在实际应用中,很多小程序、APP 或 Web 页面会请求用户开启定位权限,以提供基于地理位置的服务,比如:
- 推荐附近餐厅
- 显示周边商场
- 提供本地活动信息
在这些请求中,开发者往往直接返回了定位对应的商户 ID或 地点 ID还有一些其他****ID 。
有时,结合其他接口,我们甚至能利用这些 ID 进一步访问到 敏感数据 。
但,这还远远不够引发一场真正的 坐标风暴 。
二、为什么起名为「坐标风暴」
如果只是通过本地定位拿到单个商户的信息,影响是有限的。
而「坐标风暴」这个名字,来源于这样一个大胆的设想:
如果我们能 遍历全国范围内的经纬度 ,批量收集所有商户的 ID,再通过信息泄露接口拉取全部敏感信息呢?
这将从单点的小泄露,演变成 覆盖全国的大规模信息泄漏 。
这就是 真正意义上的“风暴” 。
想象一下:
- 不是一两家商户的住址、电话外泄
- 而是全国各地成千上万家商户的敏感数据一览无遗
这就是「坐标风暴」带来的破坏力。
三、「坐标风暴」实战案例解析
在某次小程序漏洞挖掘中,我遇到了这样一个完整的利用链:
发现阶段
- 小程序返回了一个定位接口,其中包含一个 商户定位 ID 。
- 通过这个 ID,配合另一个已知接口,可以查询到对应商户的 个人敏感信息 :
- 联系电话
- 身份证正反面照片
- 商户地址
但一开始,只能拿到自己附近的那一家的信息。
思考与突破
为了扩大影响范围,我开始思考:
- 能否拿到更多商户的 ID?
- 能否批量遍历而不是局限于当前定位?
于是,我将攻击点放在了定位接口本身。
技术实现
- 制作全国经纬度字典
-
我根据中国大陆的经纬度范围,生成了大量经纬度点。
-
精度保留到 小数点后一位 ,即每隔大约 10 公里一个点。
-
这样的精度对大部分模糊定位接口已经足够。
-
- 批量爆破定位接口
- 遍历生成的经纬度点,调用定位接口,获取商户 ID。
- 由于商户 ID 通常是复杂字符串(如
4ou&8c12cd
),不能直接遍历 ID,只能靠坐标遍历来覆盖。
- 批量获取敏感信息
- 拿到大量商户 ID 后,再通过敏感信息查询接口,拉取商户的个人数据。
最终,成功实现了 全国范围内的商户数据批量泄露 。
总结
这次的「坐标风暴」案例告诉我们:
- 漏洞不仅存在于显而易见的数据泄漏中。
- 看似无害的 经纬度坐标 ,如果利用得当,也能撬动大规模的数据泄漏。
- 在挖洞时,记得问自己一句话:
如果我能批量伪造/遍历这些数据,会发生什么?
地理数据并不安全。连坐标也可能背叛你。
大师自制坐标字典下载:微信公众号:地图大师的漏洞挖掘指南 回复 坐标