所有文章 > 学习各类API > 漏洞挖掘 | 一文详解地图API后台配置错误漏洞更新

漏洞挖掘 | 一文详解地图API后台配置错误漏洞更新

该文章仅用于安全技术分享,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责。文章作者不为此承担任何责任。

最近看了好多前端漏洞相关的东西,也产生不少成果。发现现在cors还有jsonp之类和跨域有关的漏洞,很少师傅去挖,但是能获取到敏感信息的话,大多数src还是收取的。地图这个也属于前端组件的漏洞。如果师傅们能找到其它类似于网站经常调用的像天气、验证码、站长访问统计之类api接口深入研究的话也许会有通杀漏洞大捞一笔。

0X00回顾

1.先梳理一下地图API配置错误漏洞的发现到公开的时间线:

2.src漏洞收入情况:

这个漏洞价值肯定是广大师傅最关心的问题,我这边大致统计了一下,我这边挖了有1w左右,下表是每个漏洞提交到不同平台价钱个数统计,可以看到100块和50块还是比较多的。所以算是低危漏洞。当然也有几个给了高危但是比较少。

不了解之前这个漏洞挖掘方法的白帽师傅可以看看我之前写的这篇文章:https://www.freebuf.com/articles/web/360331.html

3.其它师傅们的挖掘情况简介:

有很多师傅看了我的分享之后挖到了众测或src的相关漏洞,也有师傅催着我新的思路,但是一直没啥新的思路直到最近跟几位师傅探讨,重新翻看api文档时发现了新的思路。

0x01 新的思路简单说明

之前的思路主要是围绕着前端调用了高德、腾讯、百度地图的key,而这个key是需要自己去这三家注册开发者账号申请完之后会获取到key,然后给自己的业务进行使用。在正常网站管理员在默认配置的情况下这样配置是存在问题的,攻击者前端抓包获取到key值,利用官方给的api就可以给自己的业务使用,或者恶意消耗key值导致达到key当日使用上限,影响正常用户使用。后来在大家伙的挖掘下很多网站都按照官方说明配置域名白名单等限制消除了这个问题。并且高德地图jsapi进行了更新现在除了需要key值以外,增加了jscode验证。百度和腾讯地图目前还没变化,所以大家按照以前的方法对使用百度和腾讯地图的api的业务可以照常挖掘。这次重心主要在之前没有研究出来的google api调用payload和新的高德js api利用的挖掘上。那我们如何在高德地图存在jscode的情况下进行挖掘呢。

0x02 开挖1号洞-jscode版地图api配置错误漏洞挖掘

1.高德地图api配置错误漏洞挖掘:

(1)先看文档,高德地图js api升级为2.0之后,在需要key的基础上增加了一个jscode密钥,两者相结合才能正确的调用api接口,安全的配置是增加一个nginx做反向代理:

(2)配置错误的情况,部分网站或小程序为了开发方便他并不会用上文的nginx反向代理的方式,而是直接使用明文设置,导致我们任然可以在前端同时获得key和jscode:

(3)案例一:web应用场景

普通使用地图api的网站怎么找,详见我上篇文章:传送门

  • 打开网站按F12,点击源代码:
  • ctrl+shift+F全局搜索关键字:jscode和key=,这两个大概率在一个js文件下,或使用burp在history中搜索jscode=
  • 当我们同时获得这两个值后,就可以使用如下payload进行调用测试: https://restapi.amap.com/v3/direction/walking?origin=116.434307,39.90909&destination=117.434446,39.90816&key=此处填写key值&jscode=此处填写jscode值&s=rsv3
  • 直接浏览器打开,如果显示如下行程信息,恭喜你,他使用了不安全的配置,你可以提交了:

(4)案例2:微信小程序场景

这是本次的重点在日常测试过程中我发现小程序采用这种错误配置的方案比较多,所以师傅们可以把挖掘重点又之前的web转到小程序上,鉴于有的师傅平时小程序挖的比较少,我详细介绍下如何最简单的在微信小程序挖掘这个漏洞。

  • 使用微信小程序电脑端(任意版本都可以,最新版也行)
  • 下载httpdebugger
  • 开启httpdebggerUI后打开你要测试的小程序,然后再小程序的各个功能乱点,基本找一些定位啊,关于我们、收货地址之类的可能会调用地图api的功能点,然后在httpdebugger里应用程序选择wechatappex.exe进行过滤,只看微信小程序的报文:

然后当你功能都点过一遍后,在状态按钮旁边搜索jscode和key点击下方看详细信息即可找到key和jscode,漏洞验证仍然可以使用上方payload进行漏洞验证

0x03开挖2号洞-GOOGLE地图apikey泄露

google地图api漏洞利用算是上一篇留的一个坑最早研究高德、百度、腾讯的时候发现google也有key值但是一直没找到能验证可以调用成功的payload,这次研究出来了在这里补充一下:

  • 首先找到网站中调用google地图的页面
  • 全局搜索关键字如下图
  • 获取key值后使用如下payload进行调用,有两个,都试试:

(1)payload1:https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=此处填写key值

(2)payload2:https://maps.googleapis.com/maps/api/staticmap?center=40.714%2c%20-73.998&zoom=12&size=400×400&key=此处填写key值

  • 调用成功如下图所示:

0x04增加挖掘效率

1.其实各位师傅们通过上述可以看出,其实地图api说白了也是前端漏洞的一种,我们可以使用burp的hae插件进行被动标记,等我们把网站其它漏洞测得差不多的时候回头来看history也许有意外发现:

(1)进入burp BApp Store下载hae插件:

(2)点击添加

(3)增加如下规则:Regex:(webapi\.amap\.com|apis\.map\.qq\.com|api\.map\.baidu\.com|map\.qq\.com|restapi\.amap\.com)

(4)效果如下:

0x05 泼个凉水及忠告

该文章仅用于安全技术分享,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责。文章作者不为此承担任何责任

现在这个jscode类型的漏洞虽然没有被撸过一遍,根据fofa和hunter搜索来看存在这个问题的web还是比较少的,主要还是小程序会多一点,师傅们在挖的时候也还是放平心态,挖到了src不给过不要气馁。大家可以在挖 众测的时候多一种思路就行了。之前地图key刚发出来的之后,好多src都被挖了一遍,并且后来都直接说明不会再收地图api了,所以即使是新的思路也有可能以同样的原因不过洞。

写这篇文章的目的不仅是给白帽师傅们挖洞提供一些思路,并且也给甲方及网站技术负责人提供些许安全建议,当引用第三方组件的时候需要进行安全配置及对功能进行及时更新,而不是只关注自己的业务安全,最终导致业务被攻破的可能不是自己的问题,而是第三方组件的问题。永远记住,在你看不到的地方,黑客永远盯着你。

文章转自微信公众号@地图大师的漏洞追踪指南

#你可能也喜欢这些API文章!