*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
内容介绍
某个沉闷的夏日午后,Sam Curry在Verizon Media公司的漏洞众测项目中尝试了快一天,啥也没发现,于是,他决定先放放,做点其它事。哦,对了,朋友生日就要到了,去星巴克官网买个礼物送给她吧。
访问星巴克官网的时候,Sam无意间发现了大量API交互,他忍不住动手测试了一把,这一测就发现了漏洞线索。在星巴克官网名为/bff/proxy/的API接口下,Sam先发现了路径/bff/proxy/orchestra/get-user可以返回自己的注册信息,之后Sam对/bff/proxy/orchestra/get-user/../做了字典枚举,但无奈都返回了404状态。但这至少说明了,和服务端交互是可行的,接下来只需找到正确的路径即可。
Sam尝试去发现存在用户输入参数的路径,得到:
/bff/proxy/stream/v1/me/streamItems/:streamItemId
接着测试,又发现了:
/bff/proxy/stream/v1/users/me/streamItems/..\..\
此时的服务端响应为403,就快接近了。在添加7个\..\.绕过WAF的URL构造后,服务端响应变为了400。最终,在与朋友Justin的合作下,柳暗花明,爆出了可访问99356059条顾客记录信息的路径:
/bff/proxy/stream/v1/users/me/streamItems/web\..\.\..\.\..\.\..\.\..\.\..\.\search\v1\Accounts\
将近1个亿的星巴克顾客信息就这样唾手可得!
漏洞最终被评估定级为高危,收获了$4000的奖励,详细漏洞报告参见Sam博客或HackerOne。
漏洞详细信息:
Sam博客技术报告: https://samcurry.net/hacking-starbucks/
Hackerone漏洞报告: https://hackerone.com/reports/876295
观看视频
*本课程翻译自Youtube精选系列教程,FreeBuf视频组荣誉出品,喜欢的点一波关注(每周更新)!