萬家香Bypass WAF to SQL Injection - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2023-01060
  •  發信 Vendor: 萬家鄉醬園股份有限公司
  • Title: 萬家香Bypass WAF to SQL Injection
  • Introduction: 攻擊者可利用該漏洞取得後端資料庫權限及完整資料(包含大量使用者個資或敏感性資料),同時也有機會對資料進行破壞或修改。

處理狀態

目前狀態

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

處理歷程

  • 2023/12/27 01:08:19 : 新提交 (由 shnien 更新此狀態)
  • 2023/12/27 01:11:25 : 新提交 (由 shnien 更新此狀態)
  • 2023/12/27 01:14:03 : 新提交 (由 shnien 更新此狀態)
  • 2023/12/27 01:18:51 : 新提交 (由 shnien 更新此狀態)
  • 2023/12/27 01:19:03 : 新提交 (由 shnien 更新此狀態)
  • 2023/12/27 01:21:39 : 新提交 (由 shnien 更新此狀態)
  • 2023/12/27 10:27:05 : 新提交 (由 shnien 更新此狀態)
  • 2023/12/29 10:43:56 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2024/01/18 16:23:00 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2024/01/18 16:23:01 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2024/03/11 03:00:04 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2023-01060
  • 通報者:s52492001 (shnien)
  • 風險:高
  • 類型:資料庫注入攻擊 (SQL Injection)

參考資料

攻擊者可利用該漏洞取得後端資料庫權限及完整資料(包含大量使用者個資或敏感性資料),同時也有機會對資料進行破壞或修改。

漏洞說明: OWASP - SQL Injection
https://www.owasp.org/index.php/SQL_Injection

漏洞說明: OWASP - Top 10 - 2017 A1 - Injection
https://www.owasp.org/index.php/Top_10-2017_A1-Injection

漏洞說明: CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
https://cwe.mitre.org/data/definitions/89.html

防護方式: OWASP - SQL Injection Prevention Cheat Sheet
https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://www.wanjashan.com.tw/product_detail.php?P_ID=20200611001

敘述

於問題網址之參數「P_ID」後方加上「' and '1'='1」,系統回傳正常頁面。
圖片

改成加上「' and '1'='2」,系統回傳異常頁面。
圖片
觀察此處系統對於兩種不同請求之回應狀況,判斷此處可能存在Boolean-Based SQL Injection。

嘗試以sqlmap輔助測試時,發現會觸發人機驗證機制。
圖片

觀察該機制之運作過程,發現只要於cookie中加入一屬性「cl-bypass-cache=yes」即可繞過該驗證。
圖片

繼續嘗試以sqlmap進行測試,發現系統回傳403,推測可能有WAF在進行防禦。
圖片

以wafw00f查詢,發現該網頁的確有WAF,廠牌為LiteSpeed。
圖片

觀察WAF的作動機制後,撰寫一tamper,目的為將「schema_name」、「INFORMATION_SCHEMA.SCHEMATA」這兩個關鍵詞加上內聯註釋,以避開WAF的濾除條件。
即schema_name => /!schema_name/
INFORMATION_SCHEMA.SCHEMATA => /!INFORMATION_SCHEMA.SCHEMATA/
圖片

再度以sqlmap進行測試,參數中引入剛才修改過cookie的封包,以及自行撰寫的tamper。
圖片

成功執行SQL Injection攻擊,查詢到資料庫名稱。
圖片

資料庫中可能含有後台管理之帳號密碼,或是其他機敏資訊。
例如這邊有找到該網頁的後台登入頁面,若真的在資料庫中找到帳密,則可任意從後台更改網頁內容,或獲取更多資訊。
圖片
更甚至可能讓攻擊者上傳惡意檔案,進一步造成RCE。
但這邊就不繼續往下測試了。

修補建議

網頁中雖有兩層防禦機制(人機驗證、WAF),但目前看來還是有方法可以繞過。
建議最根本的修補方式,還是要在網頁程式碼中讀取資料庫的部分,改用參數化查詢的方式來撰寫程式碼。

擷圖

留言討論

聯絡組織

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