這個漏洞獲得了shopify的2500美金獎勵!
概括
當用戶能夠訪問他們不應該訪問的內容時,就會出現最常見的漏洞之一。如果惡意行為者利用此漏洞并訪問他人的機密信息,則可能導致敏感數據泄露。這是一種稱為信息泄露的漏洞形式,它可以有多種形式。
通常,Web 應用程序開發人員會很好地檢查用戶是否應該能夠訪問他們請求的信息。
但是,在隱藏或不明顯的地方,很容易忘記驗證用戶是否具有適當的訪問權限。
漏洞挖掘過程
Shopify是世界上最大的電子商務平臺之一。
它允許用戶建立在線商店并與他們的客戶互動,而無需處理構建和支持此類在線應用程序所需的幾乎任何技術挑戰。
提供的功能之一是允許客戶與商店進行實時交互的聊天應用程序。
我測試了一個選項,該選項允許聲明“我需要更新我的訂單。”
單擊此按鈕時,它會發出一個POST請求,其中包含order_lookup帶有請求信息的 JSON。

payload如下:
POST /api/storefront/conversations/lx9vF-DR31d1ePOOCS0Uw2lFUUBjhNqmMTOdkeM631M/order_lookup HTTP/1.1Host: shopify-chat.shopifycloud.comUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:79.0) Gecko/20100101 Firefox/79.0Accept: /Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferer: https://okbay44.myshopify.com/Content-Type: application/jsonX-Shopify-Chat-Shop-Identifier: █████████Origin: https://okbay44.myshopify.comContent-Length: 113DNT: 1Connection: 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
為什么這個賞金價值 2,500 美元?
在安全方面,人們經常將 CIA(機密性、完整性和可用性)三位一體作為指導安全原則。
在這種情況下,違反了機密性原則。我不確定從訂單中泄露的信息究竟會有多大的破壞性(即是否只是購買的訂單產品,或者是否包含敏感的財務信息),但無論哪種方式,用戶信息都應該保密。
這使該漏洞具有中等嚴重性。幸運的是,似乎沒有升級或違反完整性或可用性會使漏洞更加嚴重。
最后,這個漏洞獲得了shopify的2500美元獎勵。