破解10万+忠诚度计划:API端点漏洞分析与利用

本文详细分析了电商忠诚度奖励系统的API端点漏洞,攻击者可通过未授权端点随意增加积分并兑换商品,影响了超过10万家在线商店,包含完整的技术分析和修复建议。

背景介绍

目标系统是一个电商忠诚度和奖励应用,为Shopify、BigCommerce和Wix等平台上的商店提供B2B服务。根据服务提供商的数据,他们拥有超过10万活跃客户,我能够识别并测试了超过3.8万家顶级商店的可利用性。

在进行客户网站渗透测试时,发现其网站上列有忠诚度计划。客户需要评估所有可能的威胁,因此我必须寻找增加奖励积分的方法,以便用积分购买商品或获得大幅折扣,确保与客户相关的系统不存在漏洞。

漏洞分析

奖励应用提供多种赚取积分的方式,然后可以兑换免费礼品和折扣。奖励可以是免费商品、免费送货,或者将积分兑换成现金(例如15000积分兑换5美元)。

首次打开奖励部分时,会弹出一个显示推荐人和已获得积分的窗口。我开始测试API端点,观察它在客户网站上的变化。当在主商店注册时,第三方网站也会创建一个包含用户信息的账户,用于发放奖励和提供折扣代码。

赚取奖励的方式包括点赞Facebook页面、关注Instagram、购买商品和推荐奖励。我首先保存了提供用户账户所有信息的API端点。商店中客户账户的任何更改也会反映在这个第三方API上。

该平台有相当有趣的API请求,我决定搜索并阅读更多关于其API的信息,发现他们在开发者网站上列出了API文档。

漏洞发现

阅读API文档时,以下通知/警告让我感到惊讶:根据文档,“创建积分交易"端点不对公共应用开放。因此,客户应该能够看到管理员在某人账户上创建积分时发生的情况,最重要的是,只有具有适当权限的管理员账户才能调整积分余额。

但由于他们在公共文档中列出了该端点,我决定以客户身份尝试使用,尽管只有客户权限。发出请求实际上确实增加了我的积分余额,而且没有添加积分的数量限制。

添加几千积分后,我可以轻松地将它们兑换为免费产品或折扣代码。在一些网店上,他们甚至提供了兑现选项,从而创建可以购买最昂贵商品的优惠券。最后,您只需在结账时使用由此生成的优惠券即可。

修复与总结

在测试和发现此漏洞的完整利用能力后,我通知了客户,让他们暂时禁用奖励计划,并向受影响的供应商发送了多封邮件。在发布此博客时,供应商已通过适当的权限使端点变得安全,客户也重新启用了奖励计划。

给黑客和开发者的关键建议

对于黑客:

  • 从所有角度审视目标(客户、管理员、供应商、黑客)
  • 尝试查找API文档并阅读理解它们
  • 学会在没有API文档的情况下构建请求

对于开发者:

  • 尽量不要通过API文档泄露关键信息,例如不应公开的端点或仅应提供给订阅者的端点
  • 正确验证API端点及其权限
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计