星巴克新加坡RCE漏洞与5600美元赏金
作者:Kamil Onur Özkaleli(ko2sec) 发布时间:2021年4月3日
reconnaissance
在发现星巴克新加坡Web应用的关键漏洞后,我决定深入挖掘并开始检查com.starbucks.singapore安卓应用。遗憾的是,在移动应用中未发现任何弱点,于是转向研究应用交互的服务器端。移动应用主要与服务器的REST API交互,但我注意到某些操作会访问扩展名为".aspx"的端点。在这些端点中未发现漏洞后,通过目录扫描寻找更多端点,但几周内仍无收获。
深度侦察
休息几周后,鉴于应用服务器运行在IIS上,我开始研究IIS漏洞。在调研过程中,我偶然看到了shubs的IIS黑客视频,感谢他提醒了我之前知道但探索时忘记的Soroush Dalili的IIS波浪号枚举扫描器。使用这个自动化漏洞利用工具,我发现了"/api"目录下的一些".ashx"端点:
|
|
IIS波浪号枚举扫描器利用微软称之为"功能"的漏洞,可发现文件名前6个字符和扩展名前3个字符。基于此信息,我尝试找出完整文件名,并快速发现了部分文件:
|
|
这些端点无法利用,于是我聚焦于IMAGEU~1.ASH端点。字母"U"是否代表"upload"?使用ffuf工具以"imageuploadFUZZ.ashx"格式扫描后,确认该端点为imageuploadhandler.ashx。从名称推断用于上传图片文件,但存在几个关键问题:未授权用户能否访问?请求格式要求?能否上传非图片文件?上传后文件访问路径?能否执行文件?
漏洞利用
为解答这些问题,我向该端点发送随机GET/POST请求,但仅获得200 OK响应,无错误或成功信息。此时从开发者角度思考:文件上传端点通常通过HTML表单或javascript的XMLHttpRequest调用。检查javascript文件后,发现了ajaxfileupload.js。
如图所示,文件以"multipart/form-data"格式上传。经进一步研究,我找到了正确的上传请求格式。
尝试上传仅含文本的".aspx"文件后,文件成功上传。端点将文件名转换为UUID格式,并在响应中返回uuid+扩展名。上传的文件位于"/api"目录。
![上传成功示意图]
我立即通过Hackerone向星巴克报告漏洞,并申请远程代码执行测试权限。获得审核员许可后,上传简单脚本执行"whoami"命令,并将输出结果添加到报告中。
影响范围
有趣的是:whoami命令返回iis apppool\cards.starbucks.com.hk,HK代表香港,但我们在新加坡域名。这提示我需要检查香港区域是否使用相同应用。
担忧成真:星巴克香港应用服务器存在相同端点和漏洞。随后发现以下国家/地区的星巴克移动应用服务器均存在相同漏洞:
- 新加坡
- 香港
- 越南
- 泰国
- 马来西亚
- 柬埔寨
我将这些漏洞加入报告,但仅新加坡应用在赏金范围内,其他区域未获奖励。
恶意攻击者可利用此漏洞控制整个服务器、数据库、用户信息和应用源代码,使应用不可用或任意篡改。考虑到星巴克门店移动支付系统也位于这些服务器上,可能造成更严重的损害。
时间线
- 2020年11月6日 - 提交报告
- 2020年11月6日 - 进入审核
- 2020年11月14日 - 获得4200美元赏金(CVSS 9.1分)
- 2020年11月24日 - 追加1400美元赏金(CVSS评分升至9.8)
[点击查看Hackerone报告]
如果你喜欢这篇文章,可以在Twitter关注我。
标签:bug bounty, starbucks
kamilonurozkaleli.com © 版权所有 | Ezhil主题 | Hugo构建