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