Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00833
- Vendor: 台灣創業加盟網 (yesone.com.tw)
- Title: 台灣創業加盟網 官方網站加盟清單模組存在資料庫注入漏洞
- Introduction: 官方網站加盟清單頁面之請求參數未進行安全過濾與預處理,導致外部攻擊者可實施 獲取全站會員及管理員之核心機敏個資。
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2026/06/10 05:06:47 : 新提交 (由 小道 更新此狀態)
- 2026/06/10 05:10:01 : 新提交 (由 小道 更新此狀態)
- 2026/06/10 12:55:12 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/02 17:37:30 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/02 17:37:30 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/02 17:37:30 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/08/10 03:00:09 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00833
- 通報者: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
相關網址
敘述
一、 漏洞描述 (Vulnerability Overview)
貴站之加盟清單核心模組(list.php)在處理傳入之 HTTP GET 請求參數 a1 時,未能實施有效的輸入驗證(Input Validation)與參數化查詢(Parameterized Queries)。後端資料庫將外部惡意輸入直接拼接至 SQL 語法中解析,導致嚴重的 注入弱點。
外部威脅者可透過自動化探測工具或手動建構語義負載(Payload),直接繞過應用程式邏輯鑑別,對後端資料庫進行結構枚舉(Enumeration)與非授權資料存取,全站會員資料隱私面臨集體外洩風險。
二、 系統環境與權限驗證 (Technical Verification)
1. 系統環境情資
- 網頁伺服器:Apache
- 後端技術:PHP (涉及 Session 會話機制
PHPSESSID) - 資料庫管理系統:MySQL >= 5.1
2. 重現步驟與權限驗證
經概念驗證(POC)測試,本檢測嚴格遵循資安倫理規範(Ethical Hacking Profile),全程僅實施架構合法性抽樣,無任何實體個資外洩、下載或篡改行為。數據顯示該端點支援多種注入向量(Injection Vectors):
3. 目標資料庫結構枚舉結果
經權限層級確認,已成功獲取以下目標結構:
- 受影響資料庫:
yesoneco_member - 受影響資料表:
member(共計 42 個 Schema 欄位) - 高隱私敏感欄位(Sensitive Columns):
user_useridyes(會員帳號)user_passwdyes/MB_PASSWD(認證憑證 / 密碼雜湊值)user_email(電子郵件地址)user_cell_phone/user_cell_tel(行動電話 / 聯絡電話)user_lastName/user_man(用戶法規真實姓名)AD_UPDATE_HOST(審計軌跡 / 使用者存取來源 IP)
4. 驗證負載實例 (POC Payloads)
- Error-based (利用
EXTRACTVALUE函數觸發報錯並回顯資料):GET /list.php?order=1&a1='+AND+EXTRACTVALUE(5330,CONCAT(0x5c,0x716a787871,(SELECT+(ELT(5330=5330,1))),0x716a787871))--+fbaB&a2=&a3=a1&a4= HTTP/1.1 Host: yesone.com.tw|
GET /list.php?order=1&a1='+AND+(SELECT+9755+FROM+(SELECT(SLEEP(5)))DLiT)--+Edkt&a2=&a3=a1&a4= HTTP/1.1
Host: yesone.com.tw
修補建議
大規模敏感憑證與隱私
鑑於枚舉出 MB_PASSWD 與 user_email 等核心欄位,若密碼未採用高強度非對稱雜湊演算法,極易遭到彩虹表暴力破解。後續可能引發骨牌效應,導致用戶之外部機敏服務(如 Email、網銀)遭連帶淪陷。
法律合規風險
加盟網站涉存大量加盟主與創業主之商務聯絡個資。此漏洞若遭未授權第三方濫用,企業將違反《中華民國個人資料保護法》第 27 條關於「非公務機關應採取適當之安全措施,防止個人資料被竊取、竄改、毀損、滅失或洩漏」之規定,恐面臨主管機關裁罰及重大集體訴訟求償。
---
### 修補建議 (Remediation)
```markdown
## 建議採取的修補與緩解措施
### 1. 根本修復措施:全面導入原生預處理陳述式 (Prepared Statements)
建議開發團隊立即重構 `list.php` 的資料庫查詢邏輯,強制將數據與命令語義分離。嚴禁使用字串拼接(String Concatenation)組裝 SQL 指令。
**安全修補範例 (PHP PDO 規格):**
```php
<?php
// 1. 初始化安全的 PDO 連線(啟用例外處理機制)
try {
$pdo = new PDO('mysql:host=localhost;dbname=yesoneco_member;charset=utf8mb4', 'db_user', 'db_password', [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // 遭遇錯誤時拋出異常
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // 預設以關聯陣列回傳
PDO::ATTR_EMULATE_PREPARES => false, // 強制使用原生預處理,杜絕模擬繞過
]);
} catch (PDOException $e) {
error_log($e->getMessage());
die("Database connection failed.");
}
// 2. 接收外部參數並進行基礎型態驗證
$a1 = isset($_GET['a1']) ? trim($_GET['a1']) : '';
try {
// 3. 預編譯 SQL 語句(使用具名占位符 :a1)
$sql = "SELECT * FROM member WHERE a1 = :a1";
$stmt = $pdo->prepare($sql);
// 4. 安全綁定參數並執行查詢
$stmt->execute(['a1' => $a1]);
$memberData = $stmt->fetchAll();
} catch (PDOException $e) {
error_log($e->getMessage());
die("Data query failed.");
}
?>
2. 縱深防禦措施:輸入端洗滌與型態轉型
對於其他非字串參數(如 order, a2, a4 等),若預期輸入值為數值,應於後端強制進行強型態轉換,直接摧毀任何試圖夾帶 SQL 語法特徵的惡意負載:
PHP
// 強制將參數轉化為標準整數,徹底消除注入機率
$order = isset($_GET['order']) ? intval($_GET['order']) : 1;
3. 臨時緩解措施:建置網頁應用程式防火牆 (WAF)
在原始碼修補與複測上線前的窗口空窗期,建議立即於網頁前端佈署 WAF(如 Cloudflare 或 ModSecurity 核心規則集),針對 HTTP 請求中的特殊 SQL 語義特徵(如 EXTRACTVALUE, SLEEP(, UNION SELECT)實施即時阻斷(Drop),以降低過渡期的安全風險。