地图API后台配置错误:挖SRC的新玩具?

admin 2023年10月13日21:06:34评论73 views字数 4489阅读14分57秒阅读模式

距离上次写技术分享的文章还是在9个月前,中间这段时间主要是在各大SRC提交漏洞,冲冲分混混SRC年终礼品啥的。今天在分析自己的漏洞提交表时发现提交的一大波漏洞类型占比还是去年8、9月份发现的地图API后台配置错误,到目前为止有关这个漏洞我共赚取了漏洞赏金7853元。今天这篇文章教会各位师傅们这个漏洞怎么挖,利用什么payload,如何利用空间搜索引擎进行批量挖掘。如果你有兴趣就来瞅瞅吧~


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



0x00  起源

大家好,我是Day1安全团队的returnwrong。当我在写这篇文章的时候并不知道如何起一个吸引人的标题,于是我去问了ChatGPT。他给了我一个很好的起名列表,我从中选了一个并改了两个字,就变成了现在这篇文章的标题。感叹AI科技日新月异,说不定以后挖洞就可以让ChatGPT挖了/(ㄒoㄒ)/~~

地图API后台配置错误:挖SRC的新玩具?


每个故事都应该有起源。大概是去年下半年某个时候,我正在挖某家SRC,测了大概十几二十个子域名,一直在登录口对抗,也没有什么好的收获。于是锤头丧气地去看网页源代码,这时一个key引起了我的注意,大概是怎么样的呢,见下图:

地图API后台配置错误:挖SRC的新玩具?


以前挖别的站的时候倒是经常看到一些key泄露,但是这次鬼使神差地想搞明白这个key到底是干什么使的。

通过众所周知的搜索大法,先找到高德地图api官网,通过对官网技术文档的分析发现这个key是用于第三方网站调用显示及高德地图api进行定位、获取地理标签等服务由网站管理员于地图api官网注册申请的key值,并且这个key值无论是个人开发者还是企业开发者调用都存在每日调用上限和qps(并发)上限。

于是我想到,如果这个key的使用者未在后台配置白名单导致该key被第三方人员乃至黑客获取出售给其它开发者谋取利益或者恶意请求接口导致接口达到每日上限,将会导致地图加载异常,显示报错信息等,并且有很多网站及app会通过用户设备获取地理位置权限,这个大家都见过吧。

定位也是依赖于这个key值,当该key值被消耗完毕,该企业将无法获取使用者的地理定位。具体大家可以看看下面这张图,这是地图api官网jskey配置建议:

地图API后台配置错误:挖SRC的新玩具?
地图API后台配置错误:挖SRC的新玩具?



0x01  实践

我们都知道写一篇SRC漏洞报告,需要漏洞描述、漏洞危害及漏洞复现过程这三点。此时我搞定了描述和危害但是却卡在了漏洞复现过程这一点。我们获取key之后如何验证key是真实有效的而不是已经被网站管理员加入了白名单或者做了其它限制。接着我又研究了一周高德地图api、百度地图api、腾讯地图api,最终总结了以下这些payload。师傅们可以直接将key值或ak值(百度地图的密钥叫ak)代入我总结的payload进行验证:

地图API后台配置错误:挖SRC的新玩具?


高德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=这里写key


百度webapiIOS版:

https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行®ion=北京&output=json&ak=这里写key

=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代入payload看到类似如下地理信息就是存在:

地图API后台配置错误:挖SRC的新玩具?


如果提示类似于app调用失败,或者错误代码10006或10008就代表这个问题已经修复了,就不用再看了:

地图API后台配置错误:挖SRC的新玩具?


漏洞报告大家可以参考这个模板:

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

漏洞描述:xx网站-生活圈管理后台-存在高德地图api接管漏洞,攻击者可利用抓取的高德地图ak值任意调用属于xx的高德地图的api额度造成XX的高德地图api额度被恶意盗用,消耗等。当额度被消耗完毕后,会造成地图加载异常,定位服务无法使用等,影响用户体验。

漏洞复现:
1、浏览器访问https://xxx.xxxx.com/
2、F12查看页面源代码搜索key获得key值:
3、由于此处XX管理员对于XX地图控制台配置错误,导致任意用户均可调用该api用以消耗额度,此处参考高德地图官方web调用接口构造payload:https://api.map.baidu.com/place/v2/search?query=ATM%E6%9C%BA&tag=%E9%93%B6%E8%A1%8C®ion=%E5%8C%97%E4%BA%AC&output=json&ak=这里写key
调用成功如下图所示:
若配置正确攻击者调用该接口会提示错误代买10006或10008无法通过该接口获取地图信息
修复方案:
参考XX地图官方文档



0x02  挖掘方法1.0

先跟各位师傅们讲讲关心的漏洞赏金的问题,从我挖这个洞开始最高赏金900块最低赏金3块,不同SRC给的各种价格都有,我画了一张柱状图,各位师傅可以参考看看:

地图API后台配置错误:挖SRC的新玩具?

1.0的挖掘方法:首先我主要是看各大SRC的资产范围,然后挨个去网站找调用了地图的功能点。例如:“关于我们”、“位置查找”等地方,但效率比较低,在各大src有活动的时候混个礼盒还行,漏洞赏金大概挖了2k左右。当时基本SRC都看了一遍,后来我觉得有独立src的公司基本看完了就没在关注这个洞了。知道后来我对这个漏洞的研究又取得了新的突破。



0x03  挖掘方法2.0

1.0的方法刷了一圈之后就继续挖别的洞去了,后来遇到了瓶颈又处于登录口对抗状态的时候我再次想起了这个洞,回头再去看官方api的时候,发现图们的api不止用于显示js地图还用于定位、距离测算等等功能。那就是说可能不显示地图的界面也可能存在这个问题,所以方法进入2.0时代。

地图API后台配置错误:挖SRC的新玩具?


发现方法2.0(网络空间搜索引擎):

不卖关子直接上研究成果,你只需要把要挖网站的根域名替换成下面我写的语法即可,搜到后打开网站在源代码中搜索关键字ak=或key= 得到key值


ZoomEye钟馗之眼:

(Banner:"webapi.amap.com" Banner:"api.map.baidu.com" Banner:"map.qq.com/api")+site:"根域名替换"

地图API后台配置错误:挖SRC的新玩具?


奇安信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")


如下数据包即为key调用的包,其它百度地图、腾讯地图同理:

地图API后台配置错误:挖SRC的新玩具?

只要网络空间搜索引擎搜索能搜出来的,就直接去看源代码,或者用burp抓包,逐个放包,找到key值后直接用上面的payload去调用,调用成功提交报告即可。2.0的方法我大概挖了5k左右,各个平台都提交过。



0x04  泼个凉水及忠告

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

地图API后台配置错误:挖SRC的新玩具?

现在这个漏洞基本上都被挖了一遍,再挖可能不好通过了。白帽师傅们就当学个思路,如果提交了没有通过也不要当回事,通过了就当捡个洞,心态放平~

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



0x05  说点题外话

地图API后台配置错误:挖SRC的新玩具?

说真的,挖洞其实是个枯燥的过程。很多时候我们面对的就是一个一个请求包,遇到一个又一个自己无法解决的问题。去年中旬之前,我从未想过年底我能在各大SRC年榜上有排名。以前对别人都是羡慕,知道后来加入Day1安全团队,和许多师傅一起交流技术学到了很多东西。如果说经验之谈的话,我觉得挖洞就像打游戏,你需要队友共同交流你才能进步。在这里给团队打个小广告,欢迎大家关注公众号:Day1安全团队




关于Day1安全团队

        Day1安全团队成立于2019年12月下旬,是一支专注于网络安全技术研究的团队。团队以渗透测试、红蓝攻防、代码审计、移动安全等方向为主要研究方向。

        团队主要组成人员既包括了各大安全厂商及一线互联网公司的安全从业人员,也融合了来自各所高校的学生,在不断夯实团队自身安全底蕴的同时,也持续吸纳着来自高校和社会的新鲜血液。

        核心价值观:It's always day 1 永远保持第一天接触网络安全的热情

地图API后台配置错误:挖SRC的新玩具?

扫码关注

原文始发于微信公众号(Day1安全团队):“地图API后台配置错误”:挖SRC的新玩具?

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月13日21:06:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   地图API后台配置错误:挖SRC的新玩具?https://cn-sec.com/archives/2109954.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息