Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2025-00680
- Vendor: 常誠電腦股份有限公司
- Title: 常誠購物商城的會員登入功能存在資料庫隱碼注人(SQLi)漏洞
- Introduction: 會員登入存在SQLi漏洞
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2025/07/03 09:58:57 : 新提交 (由 阿美 更新此狀態)
- 2025/07/03 11:53:49 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/17 15:50:32 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/17 15:50:32 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/17 15:50:32 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/22 15:37:54 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/22 15:37:54 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/22 15:37:54 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/24 09:23:03 : 已修補 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/08/01 03:00:29 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2025-00680
- 通報者:gmwa (阿美)
- 風險:高
- 類型:資料庫注入攻擊 (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
相關網址
敘述
1.帳密及密碼欄都輸入「' or '9'>'8」,會造成http code 500,錯誤訊息如下
Microsoft OLE DB Provider for SQL Server 錯誤 '80004005'
警告: 嚴重錯誤 7105 發生於 07 3 2025 9:32AM。請記錄錯誤和時間,並連絡您的系統管理員。
/cart/cart_verification.asp, 行6
2.在帳號欄輸入「' or account= #」,密碼欄輸入「password」則呈現「接近 ' and login_pw=' 之處的語法不正確。」表示密碼的資料欄位名稱為「login_pw」
3.在帳號欄輸入「' or account='3」,密碼欄輸入「password」則呈現「無效的資料行名稱 'account'。」,經反復測試,獲得帳號的資料欄位名稱為「login_id」
4.在帳號欄輸入「' or login_id='3」,密碼欄輸入「password」,因登入失敗,回到未登入狀態的首頁(圖1)
5.在帳號欄輸入「' or login_id=' #」,密碼欄輸入「password」(圖2),成功登入,但看不到客戶的姓名(圖3),表示繞過身分管制,但沒有對應到正確的客戶。此時點擊「訂單查詢」可看到清單內容(圖4)
6.在帳號欄輸入「' or login_id like 'a%' or '1'>'9」,密碼欄輸入任意值(例如 xxxx),即可以帳號第1字母 為「a」客戶身分登入,也可看到客戶姓名(圖5)
7.經測試,帳號及密碼欄位皆有相同問題。
由上述測試步驟證明此系統存在SQLi弱點。
修補建議
一、永遠不要直接拼接 SQL 字串,改用Prepared Statements / Parameterized Queries
二、用白名單驗證(Whitelist Validation)檢查使用者提交的資料之合法性、有效性。
三、使用 ORM 或 框架自帶的查詢建構器,如Laravel Eloquent
四、在接受使用者提交的資料前,應驗證資料內容及長度的合理性。