地图API配置错误漏洞导致的key或者ak泄露
字数 2051 2025-08-22 18:37:27
地图API配置错误漏洞导致的Key或AK泄露教学文档
0x1 前言
本教学文档详细讲解地图API配置错误导致的Key或AK泄露漏洞,包括漏洞原理、危害、挖掘技巧、验证方法和修复方案。
0x2 地图API简介
一、Web服务API简介
高德/百度/腾讯Web服务API向开发者提供HTTP接口,开发者可通过这些接口使用各类型的地理数据服务,返回结果支持JSON和XML格式。
- 高德地图:使用Key作为访问凭证
- 百度地图:使用AK(Application Key)作为访问凭证
- 腾讯地图:使用Key作为访问凭证
二、泄露的API Key可能带来的问题
- 滥用和超额使用:导致账户超额使用配额,产生额外费用或服务中断
- 费用增加:超出免费额度后产生额外费用
- 数据安全和隐私问题:恶意用户可能访问应用程序数据
- 服务中断:服务提供商可能封禁被滥用的密钥
三、如何应对API Key泄露
- 立即更换密钥
- 限制API Key的使用范围(IP地址、配额等)
- 监控使用情况
- 安全存储密钥(避免硬编码)
- 设置警报和监控
0x3 API漏洞挖掘技巧
一、地图API payload总结
高德地图
- WebAPI:
https://restapi.amap.com/v3/direction/walking?origin=116.434307,39.90909&destination=116.434446,39.90816&key=KEY - JSAPI:
https://restapi.amap.com/v3/geocode/regeo?key=KEY&s=rsv3&location=116.434446,39.90816&callback=jsonp_258885_&platform=JS - 小程序定位:
https://restapi.amap.com/v3/geocode/regeo?key=KEY&location=117.19674%2C39.14784&extensions=all&s=rsx&platform=WXJS&appname=c589cf63f592ac13bcab35f8cd18f495&sdkversion=1.2.0&logversion=2.0
百度地图
- WebAPI:
https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=AK - WebAPI IOS版:
https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=AK=iPhone7%2C2&mcode=com.didapinche.taxi&os=12.5.6
腾讯地图
- WebAPI:
https://apis.map.qq.com/ws/place/v1/search?keyword=酒店&boundary=nearby(39.908491,116.374328,1000)&key=KEY
二、漏洞验证技巧
- 成功案例:将收集到的key/ak值放入对应payload,能返回敏感信息
- 失败案例:提示"app调用失败"或错误代码10006/10008,表示漏洞已修复
三、漏洞报告参考
漏洞标题:XX网站-XX管理后台-存在XX地图API接管漏洞
漏洞描述:攻击者可利用抓取的API Key任意调用属于XX的地图API额度,造成额度被恶意盗用、消耗。当额度被消耗完毕后,会造成地图加载异常,定位服务无法使用等。
修复方案:参考对应地图官方文档重新配置API Key
0x4 地图API漏洞利用
一、挖掘方法
- 寻找具有地图功能的站点(导航、定位等)
- F12查看网页源代码
- 搜索关键词"key="或"ak="
二、FOFA语法批量检索
(body="webapi.amap.com" || body="api.map.baidu.com" || body="apis.map.qq.com" || body="map.qq.com/api/js?v=") && is_domain=true
三、漏洞利用案例
案例一:腾讯地图Key泄露
- 在网页源代码中找到:
https://map.qq.com/api/js?v=2.exp&libraries=place&key=xxxx - 使用腾讯WebAPI payload验证
案例二:百度地图AK泄露
- 在网页源代码中找到:
https://api.map.baidu.com/api?type=webgl&v=1.0&ak=xxxx - 使用百度WebAPI payload验证
案例三:高德地图Key泄露
- 在网页源代码中找到:
key: 'xxxxxxxxxxxxxxxx' - 使用高德WebAPI payload验证
0x5 高级检索技巧
奇安信Hunter
(web.body="webapi.amap.com" || web.body="api.map.baidu.com" || web.body="apis.map.qq.com" || web.body="map.qq.com/api/js?v=")&& domain.suffix="根域名替换"
FOFA引擎
(body="webapi.amap.com" || body="api.map.baidu.com" || body="apis.map.qq.com" || body="map.qq.com/api/js?v=")&& domain="根域名替换"
360Quake
domain:"根域名替换" AND (response:"webapi.amap.com" OR response:"api.map.baidu.com" OR response:"map.qq.com")
0x6 总结
- 地图API Key泄露是常见配置错误漏洞
- 可通过源代码审计和批量搜索发现
- 使用特定payload可验证漏洞存在
- 漏洞可能导致经济损失和服务中断
- 修复方案包括更换密钥和设置访问限制