地图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可能带来的问题

  1. 滥用和超额使用:导致账户超额使用配额,产生额外费用或服务中断
  2. 费用增加:超出免费额度后产生额外费用
  3. 数据安全和隐私问题:恶意用户可能访问应用程序数据
  4. 服务中断:服务提供商可能封禁被滥用的密钥

三、如何应对API Key泄露

  1. 立即更换密钥
  2. 限制API Key的使用范围(IP地址、配额等)
  3. 监控使用情况
  4. 安全存储密钥(避免硬编码)
  5. 设置警报和监控

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=银行&region=北京&output=json&ak=AK
  • WebAPI IOS版: https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行&region=北京&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

二、漏洞验证技巧

  1. 成功案例:将收集到的key/ak值放入对应payload,能返回敏感信息
  2. 失败案例:提示"app调用失败"或错误代码10006/10008,表示漏洞已修复

三、漏洞报告参考

漏洞标题:XX网站-XX管理后台-存在XX地图API接管漏洞

漏洞描述:攻击者可利用抓取的API Key任意调用属于XX的地图API额度,造成额度被恶意盗用、消耗。当额度被消耗完毕后,会造成地图加载异常,定位服务无法使用等。

修复方案:参考对应地图官方文档重新配置API Key

0x4 地图API漏洞利用

一、挖掘方法

  1. 寻找具有地图功能的站点(导航、定位等)
  2. F12查看网页源代码
  3. 搜索关键词"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泄露

  1. 在网页源代码中找到:https://map.qq.com/api/js?v=2.exp&libraries=place&key=xxxx
  2. 使用腾讯WebAPI payload验证

案例二:百度地图AK泄露

  1. 在网页源代码中找到:https://api.map.baidu.com/api?type=webgl&v=1.0&ak=xxxx
  2. 使用百度WebAPI payload验证

案例三:高德地图Key泄露

  1. 在网页源代码中找到:key: 'xxxxxxxxxxxxxxxx'
  2. 使用高德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 总结

  1. 地图API Key泄露是常见配置错误漏洞
  2. 可通过源代码审计和批量搜索发现
  3. 使用特定payload可验证漏洞存在
  4. 漏洞可能导致经济损失和服务中断
  5. 修复方案包括更换密钥和设置访问限制
地图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=银行&region=北京&output=json&ak=AK WebAPI IOS版: https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行&region=北京&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语法批量检索 三、漏洞利用案例 案例一:腾讯地图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 FOFA引擎 360Quake 0x6 总结 地图API Key泄露是常见配置错误漏洞 可通过源代码审计和批量搜索发现 使用特定payload可验证漏洞存在 漏洞可能导致经济损失和服务中断 修复方案包括更换密钥和设置访问限制