当前位置: 首页 > 科技观察

挖洞体验-价值6k$的星巴克官网账号劫持漏洞

时间:2023-03-20 15:51:14 科技观察

本文分享笔者在测试星巴克官网时,在自己的测试环境中发现的账号劫持漏洞。6000的奖励。漏洞检测当我在新加坡浏览星巴克网站时,无意中发现了一个第三方网站。为了保密起见,我们称它为example.com。随着对该网站的深入检测,发现其路径example.com/starbucks下的页面与星巴克登录网站card.starbucks.com.sg一模一样:此时,我想到了两种可能:当前的web应用是card.starbucks.com.sg的测试环境;可能是我忘记删除环境的旧版本测试。这两种可能都会导致bug,但是我不确定这里的bug会不会影响到星巴克网站的生产环境。于是,我在card.starbucks.com.sg网站上创建了一个用户,然后用这个用户在example.com/starbucks上进行了登录测试,BINGO!有用!也就是说example.com/starbucks和card.starbucks.com.sg采用了相同的用户认证机制,可以对注册的星巴克用户进行认证。漏洞利用为此,我在example.com/starbucks页面下找到了另外一条路径。该路径发起的POST包中包含注册用户的绑定邮箱:email=hacker@hacker.com基于账号劫持的思路,因此,我这里将绑定邮箱替换为受害者的邮箱。请求发送后,服务器的响应中只包含受害者的部分信息。同样在密码更改请求中,由于无效的CSRF令牌,最终的帐户劫持尝试也没有成功。继续测试,我将example.com/starbucks中生成的包含受害者邮箱参数的PHPSESSIDcookie复制到card.starbucks.com.sg的请求包中,哇哦,请求发送后,成功获取星巴克生产环境中受害者的个人信息。在此请求中生成的有效CSRF令牌允许我更改受害者的密码,从而劫持受害者的??帐户。漏洞影响利用该漏洞不仅可以查看其他用户的个人信息,还可以劫持受害者的??账户,如果受害者的用户账户有积分,还可以通过手机APP消费受害者的积分。发现的其他漏洞我还在example.com上发现了另外两个测试环境页面,分别是:example.com/starbucks2和example.com/starbucks3,但是我在card.starbucks.com.sg注册的账号无法登录这两个测试页。另外example.com/starbucks2页面不能注册新用户,example.com/starbucks3页面可以注册新用户。这里有点乱,但我会尽量保持简单。我认为这两个测试环境页面example.com/starbucks2和example.com/starbucks3调用了测试用户数据表。因此,在生产环境card.starbucks.com.sg注册的用户无法在两个测试环境使用。登录环境。因为example.com/starbucks3页面可以注册新用户,而这个用户可以用来登录example.com/starbucks2,但是不能登录card.starbucks.com.sg。但是,我从example.com/starbucks2请求数据包中复制的PHPSESSIDcookie对card.starbucks.com.sg有效,因此间接地对应该在example.com/starbucks3页面上注册的新用户有效。为此,我画了一个利用以下漏洞的逻辑图:在example.com/starbucks3上使用受害者的电子邮件地址注册一个新用户;使用注册的受害者用户登录example.com/starbucks2;复制第2步的请求,登录PHPSESSIDcookie信息到生产环境网站card.starbucks.com.sg,即可实现受害者账号劫持(如果受害者邮箱有生产环境用户注册,账号劫持可实现)也可以在这里实现)。漏洞上报及处理流程5.17-漏洞上报5.18-漏洞分类5.20-星巴克奖励40006.17-星巴克额外奖励2000来源:kamilonurozkaleli