当用户能够访问他们不应该访问的内容时,就会出现最常见的漏洞之一。如果恶意行为者利用此漏洞并访问他人的机密信息,则可能导致敏感数据泄露。这是一种称为信息泄露的漏洞形式,它可以有多种形式。
通常,Web 应用程序开发人员会很好地检查用户是否应该能够访问他们请求的信息。
但是,在隐藏或不明显的地方,很容易忘记验证用户是否具有适当的访问权限。
Shopify是世界上最大的电子商务平台之一。
它允许用户建立在线商店并与他们的客户互动,而无需处理构建和支持此类在线应用程序所需的几乎任何技术挑战。
提供的功能之一是允许客户与商店进行实时交互的聊天应用程序。
我测试了一个选项,该选项允许声明“我需要更新我的订单。”
单击此按钮时,它会发出一个POST请求,其中包含order_lookup带有请求信息的 JSON。
payload如下:
POST /api/storefront/conversations/lx9vF-DR31d1ePOOCS0Uw2lFUUBjhNqmMTOdkeM631M/order_lookup HTTP/1.1
Host: shopify-chat.shopifycloud.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:79.0) Gecko/20100101 Firefox/79.0
Accept: /
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://okbay44.myshopify.com/
Content-Type: application/json
X-Shopify-Chat-Shop-Identifier: █████████
Origin: https://okbay44.myshopify.com
Content-Length: 113
DNT: 1
Connection: close
{"order_lookup":{"email":"@gmail.com","order_number":"1005","user_token":"███"}}
我注意到对email值执行的唯一验证是确保提供了邮件服务器。
这意味着将email值更改为@gmail.com,@yahoo.com等,然后这将通过验证。
然后,我还注意到该order_number值应该从 1000 开始,并在每个新订单上增加 1。
结合这两个事实,我能够发现这实际上是一个IDOR,并且攻击者将有能力获取在该商店下的任何订单的订单信息。
漏洞报告地址:https://hackerone.com/reports/968165
在安全方面,人们经常将 CIA(机密性、完整性和可用性)三位一体作为指导安全原则。
在这种情况下,违反了机密性原则。我不确定从订单中泄露的信息究竟会有多大的破坏性(即是否只是购买的订单产品,或者是否包含敏感的财务信息),但无论哪种方式,用户信息都应该保密。
这使该漏洞具有中等严重性。幸运的是,似乎没有升级或违反完整性或可用性会使漏洞更加严重。
最后,这个漏洞获得了shopify的2500美元奖励。
文章来源:Hack学习呀
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
如侵权请私聊我们删文
END
多一个点在看多一条小鱼干