背景
目标系统是一个电商会员与奖励应用,为不同平台和商店提供回头客积分服务。该应用在Shopify、BigCommerce和Wix等平台上提供B2B服务。根据服务提供商自己的数据,他们拥有超过10万活跃客户,我能够在超过3.8万家顶级店铺中识别并测试该漏洞的可利用性。
我在为客户进行网站渗透测试时,发现他们的网站上有一个会员奖励程序。由于客户需要评估所有可能的威胁,我必须寻找增加奖励积分的方法,用这些积分购买商品或获得大幅折扣,以确保与我的客户相关的任何内容都不存在漏洞。
奖励应用有多种赚取积分的方式,然后可以用积分兑换免费礼品和折扣。奖励可能是免费商品、免费送货,或者将优惠券兑换成现金,例如15000积分兑换5美元。
漏洞分析
当我们首次打开奖励部分时,会看到一个弹出窗口,显示我们的推荐和迄今为止获得的积分。
我开始测试API端点,以查看它对我的客户站点进行了哪些更改。当你在主商店注册时,第三方站点也会创建一个包含你信息的账户,该账户随后将用于发放奖励和提供折扣代码。
有多种赚取奖励的方式,例如点赞Facebook页面、在Instagram上关注、购买商品以及推荐奖励。最初,我保存了以下API端点,该端点提供我们用户账户的所有信息。
对商店中客户账户所做的任何更改也会反映在此第三方API上。
由于该平台有相当有趣的API请求,我决定通过谷歌搜索并阅读更多关于其API的信息,他们在开发者站点上列出了API文档。
阅读他们的API文档后,以下通知/警告让我感到惊讶。
根据他们的文档,“创建积分交易"端点不适用于公共应用。因此,像客户这样的人应该能够看到管理员在某人账户上创建积分时会发生什么,最重要的是,只有具有适当权限的管理员账户才能调整积分余额。
但由于他们在公共文档中列出了该端点,我决定以客户身份尝试,仅具有客户权限。
发出请求实际上确实增加了我的积分余额,并且对可以添加的积分数量没有限制。
获得积分后,我添加了几千点积分,可以轻松地将它们兑换为免费产品或折扣代码。
在一些网络商店上,他们甚至有一个兑现选项,从而可以生成优惠券,购买最昂贵的商品。
最后,您只需在结账时使用由此生成的优惠券即可。
这就是漏洞本身,我希望它更容易理解和阅读。
结束语
虽然测试和发现此漏洞的全部利用能力非常有趣,但最终我必须通知我的客户,并让他们暂时禁用奖励程序,并向受影响的供应商发送了多封电子邮件。在发布此博客时,供应商已通过适当的权限使端点安全,客户也重新启用了奖励程序。
对黑客和开发者的一些关键要点:
对于黑客:
- 从所有角度(客户、管理员、供应商、黑客)审视目标。
- 尝试查找API文档并阅读和理解它们。
- 学会在没有API文档的情况下构建请求。
对于开发者:
- 尽量不要通过API文档留下关键信息,例如不应公开的端点或仅应提供给订阅者的端点。
- 正确验证API端点及其权限。
感谢阅读!