[網站漏洞] 005 商業邏輯漏洞 Business Logic Vulnerabilities

前言

商業邏輯漏洞主要由「開發者」在撰寫程式碼的時候,不太熟悉安全的程式碼開發原則,因此寫出 Bug 而該 Bug 引起重大影響,如個資外洩、商業邏輯任意修改。

何謂商業邏輯

首先我們可以看以下的流程

  1. 使用者看到商品列表
  2. 使用者看到喜歡的商品,後點選「加入購物車」的按鈕
  3. 系統將商品加入到購物車
  4. 使用者點選結帳
  5. 系統結算應該結帳的金額

其中加入購物車跟結帳都是需要系統後端撰寫程式碼去實作「邏輯」的部分,但如果這些內容沒有撰寫好,可能就會有邏輯缺陷。

為什麼會有商業邏輯漏洞

主要有幾個原因

  1. 無條件信任使用者輸入的內容
  2. 過濾使用者輸入,但是沒有過濾完全,導致被繞過

商業邏輯漏洞影響

  1. 任意修改系統邏輯
  2. 影響到使用系統的使用者,如個資外洩

商業邏輯漏洞範例

  1. 前端進行過濾,但後端沒有過濾,導致只需要攔截封包,修改封包內容就可以被繞過。
  2. 訂購商品沒有限制為正整數,被駭客修改成 負數或是 0 可能會造成金額上的算數問題。

Hackerone 真實案例

如何防禦商業邏輯漏洞

  1. 完全不要信任使用者的輸入
  2. 程式碼邏輯應該要撰寫清晰

CWE

飛飛
飛飛