Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00878
- Vendor: {彰化縣縣民運動大會}
- Title: 彰化縣縣民運動大會報名系統 SQL Injection 漏洞
- Introduction: score_query.php 的 sel_date、sel_event 參數未過濾即帶入 SQL 查詢,導致可進行資料庫注入並取得整個後端資料庫內容。
處理狀態
目前狀態
公開
Last Update : 2026/09/02
-
新提交
-
已審核
-
已通報
-
已修補
-
已複測
-
公開
處理歷程
- 2026/07/01 17:54:53 : 新提交 (由 Bun_. 更新此狀態)
- 2026/07/01 17:55:52 : 新提交 (由 Bun_. 更新此狀態)
- 2026/07/07 13:34:55 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/23 16:03:19 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/23 16:03:19 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/23 16:03:19 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/08/26 11:10:24 : 複測申請中 (由 組織帳號 更新此狀態)
- 2026/09/01 16:05:36 : 確認已修補 (由 Bun_. 更新此狀態)
- 2026/09/02 03:00:03 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00878
- 通報者:Superliverbun (Bun_.)
- 風險:嚴重
- 類型:資料庫注入攻擊 (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
漏洞說明: 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://w2.athletics.org.tw/~www/changhua2019/score_query.php?action=menu&htm=2&mode=1&ItNo=21&device=&ID=&minor=
敘述
彰化縣 108 年縣民運動大會報名系統的成績查詢功能 score_query.php,其 POST 參數 sel_date 與 sel_event 在帶入後端 SQL 查詢前未經任何過濾或參數化處理,存在 SQL Injection 漏洞。
- 攔截成績查詢的 POST 請求,內容如下:
POST /~www/changhua2019/score_query.php HTTP/1.1
Host: w2.athletics.org.tw
Content-Type: application/x-www-form-urlencoded
action=menu&mode=1&htm=2&ItNo=21&ID=&sel_date=1080816&sel_event=
- 使用 sqlmap 對 sel_date、sel_event 參數進行注入測試,並確認當前使用者是否為 DBA:
sqlmap -r req100.txt -p sel_event,sel_date --batch --random-agent --is-dba
確認三種注入皆成立,且 current user is DBA: True:
- Boolean-based blind
- Time-based blind(MySQL SLEEP)
- UNION query(64 columns)
- 進一步列舉所有資料庫:
sqlmap -r req100.txt -p sel_event,sel_date --batch --random-agent --is-dba --dbs
於 DBA 權限下可列舉出全系統共 396 個資料庫,包含歷年各縣市運動大會(changhua2019 ~ changhua2026 等)及多個其他單位資料庫。
由於注入點具備 DBA 權限,攻擊者可任意讀取、修改全系統 396 個資料庫的內容,包含各屆比賽參賽者的個人資料(姓名、報名資訊等),並可進一步利用 LOAD_FILE() 等功能讀取伺服器檔案,造成大規模個資外洩與系統淪陷風險。
修補建議
1. 所有 SQL 查詢改用參數化查詢(Prepared Statements),勿將使用者輸入直接拼接進 SQL 語句。
2. 對 sel_date、sel_event 等參數進行型別與格式驗證(如日期僅允許數字)。
3. 移除網頁應用所使用之資料庫帳號的 DBA/FILE 權限,遵循最小權限原則,並限制其僅能存取必要的單一資料庫。
4. 全面盤點其他頁面是否存在相同問題(如 rank_stat.php 等)。
擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。