Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00867
- Vendor: 輔仁大學學校財團法人輔仁大學
- Title: 輔仁大學校友會系統登入端點 SQL Injection(未授權,可讀取整個資料庫並繞過驗證)
- Introduction: 校友會系統 /script/login.php 的 loginid 參數未經參數化即拼接進 SQL 查詢,可進行 error-based / boolean-based / time-based 注入,未授權即可讀取整個資料庫並繞過登入驗證。
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2026/06/23 10:52:55 : 新提交 (由 Ethan Yang 更新此狀態)
- 2026/06/25 16:42:07 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/23 15:56:12 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/23 15:56:12 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/08/17 10:55:05 : 已修補 (由 組織帳號 更新此狀態)
- 2026/08/23 03:00:03 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00867
- 通報者:yangminchun (Ethan Yang)
- 風險:嚴重
- 類型:資料庫注入攻擊 (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
相關網址
敘述
摘要
登入端點 POST /script/login.php 的 loginid 參數以字串拼接方式直接帶入 SQL 查詢,未使用參數化(prepared statement)。可進行 error-based、boolean-based、time-based 三種 SQL Injection,未授權即可讀取整個資料庫,並可繞過登入驗證。
重現步驟
1. Error-Based(取得資料庫名稱)
Payload(loginid 欄位):
[email protected]' AND GTID_SUBSET(CONCAT(0x7e,(SELECT database()),0x7e),1)#
回應錯誤訊息中夾帶資料庫名稱:Malformed GTID set specification '~fjwaa2025~'。
2. Error-Based(單引號觸發原始 SQL 錯誤)
[email protected]' 會回傳完整 PDOException stack trace,洩漏:
- 完整網站根目錄路徑:
/www/wwwroot/fjwaa7/ - 弱點檔案與行號:
vendor/exlocus/function-pdo.php:132 - 查詢以
PDO::query()字串拼接(非 prepared statement)
production 環境display_errors = On,完整堆疊外洩本身即為一項資訊洩漏問題。
3. Boolean-Based(驗證繞過)
[email protected]' OR 1=1# 回傳「密碼不正確」,而不存在帳號回傳「帳號不存在」。兩者差異證明 OR 1=1 確實匹配到 member 表內的真實資料列。
4. Time-Based Blind
[email protected]' AND SLEEP(2)# 使回應時間由約 100ms 增至約 2,100ms,證明注入的 SQL 於伺服器端執行。
影響範圍
透過 error-based 確認:
- 當前資料庫:
fjwaa2025,DB 版本5.7.44-log - 資料庫共 26 個資料表
member表約 482 筆,內含姓名、email、電話、地址等個資,密碼以未加salt MD5 儲存- 另存在
adminuser等管理相關資料表
發現
- production 開啟
display_errors,外洩絕對路徑與框架結構。 - 會員與管理密碼皆為未加salt MD5,一旦資料庫外洩可被快速還原。
- 經觀察,系統仍存在一組 CMS 廠商預設/測試性質的管理帳號且使用極弱密碼,建議一併停用。
- CMS 廠商:Exlocus(壹端網路科技,1duan.net)。
根因
/www/wwwroot/fjwaa7/vendor/exlocus/function-pdo.php:132 使用 PDO::query() 並將使用者輸入直接拼接進 SQL 字串。
修補建議
1. 所有資料庫查詢改用 PDO::prepare() 搭配綁定參數(prepared statement),勿字串拼接。
2. production 關閉 display_errors,錯誤改寫入內部 log,避免堆疊與路徑外洩。
6. 因資料庫曾可被未授權讀取,建議評估通知受影響會員並要求重設密碼。