黑客如何利用API漏洞攻破10万+忠诚度计划并获利

本文详细介绍了如何通过分析API文档发现并利用一个关键端点漏洞,在电商忠诚度计划中无限增加积分并兑换免费商品或折扣券,涉及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 设计