Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00885
- Vendor: 台灣電腦網路危機處理暨協調中心(TWCERT/CC)
- Title: 全國小學田徑錦標賽報名系統 SQL Injection、任意檔案上傳導致RCE
- Introduction: 未驗證檔案類型,可上傳 PHP webshell
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
已修補
-
已複測
-
公開
處理歷程
- 2026/07/01 18:15:01 : 新提交 (由 Bun_. 更新此狀態)
- 2026/07/01 18:15:36 : 新提交 (由 Bun_. 更新此狀態)
- 2026/07/07 13:37:11 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/23 16:23:17 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/23 16:23:17 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/23 16:23:17 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/08/31 03:00:14 : 公開 (由 HITCON ZeroDay 平台自動更新)
- 2026/09/04 16:35:04 : 已修補 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/09/12 03:00:12 : 公開 (由 HITCON ZeroDay 平台自動更新)
- 2026/09/17 14:46:24 : 複測申請中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/09/21 15:06:45 : 確認已修補 (由 Bun_. 更新此狀態)
- 2026/09/22 03:00:10 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00885
- 通報者:Superliverbun (Bun_.)
- 風險:嚴重
- 類型:任意檔案上傳 (Arbitrary File Upload)
參考資料
漏洞說明: OWASP - Unrestricted File Upload
https://www.owasp.org/index.php/Unrestricted_File_Upload
漏洞說明: CWE-434: Unrestricted Upload of File with Dangerous Type
https://cwe.mitre.org/data/definitions/434.html
相關網址
https://w201.tcctf.idv.tw/twes2026/upload_entry_form.php
https://w201.tcctf.idv.tw/twes2026/upload_payment_voucher.php
https://w201.tcctf.idv.tw/twes2026/voucher/
https://w201.tcctf.idv.tw/twes2026/entry_form/
敘述
115 年全國小學田徑錦標賽線上報名系統同時存在 SQL Injection 與任意檔案上傳導致 RCE 等多項嚴重漏洞。
一、SQL Injection(score_query_adv.php)
成績查詢功能的 POST 參數 sel_date 未經過濾即帶入 SQL 查詢,存在注入漏洞,可驗證四種注入皆成立:
- Boolean-based blind
- Stacked queries(可堆疊執行多句 SQL)
- Time-based blind(MySQL SLEEP)
- UNION query(157 columns)
- 後端 DBMS:MySQL(MariaDB fork)/Linux CentOS 7/Apache 2.4.6/PHP 5.4.16
檔案上傳功能(upload_entry_form.php、upload_payment_voucher.php)未對上傳檔案進行充分驗證,可透過雙副檔名(如 shell.pdf.php)繞過並上傳含惡意 PHP 程式碼的 webshell,被伺服器轉存為 .php 後置於公開可存取目錄。直接以 URL 觸發即可執行任意系統指令:
成功以 apache 權限執行任意系統指令(RCE)。
上傳目錄未禁止目錄瀏覽(Directory Listing),任何人皆可直接瀏覽並下載其他報名者上傳的所有檔案,包含繳費憑證及含個資的報名文件:
RCE: 攻擊者可上傳 webshell 並以 apache 權限執行任意系統指令,控制整台伺服器,並可橫向存取同主機上其他賽事系統與資料庫。
SQL Injection: 可任意讀取資料庫中大量參賽者(含小學生)個人資料。
個資外洩: 上傳目錄可任意瀏覽,報名者上傳的繳費憑證、報名表等檔案遭任意下載,外洩姓名、銀行帳號、聯絡方式等個人與財務資訊。
修補建議
1. 所有 SQL 查詢改用參數化查詢(Prepared Statements),勿將使用者輸入直接拼接進 SQL 語句。
2. 上傳檔案採用白名單驗證(僅允許 jpg、png、pdf 等必要格式),同時驗證副檔名、MIME type 與檔案實際內容,避免雙副檔名繞過。
3. 上傳檔案一律重新命名,並儲存於 Web Root 之外、或關閉該目錄的 PHP 執行權限。
4. 關閉上傳目錄的 Directory Listing。
5. 對上傳與下載功能加入存取控制,僅允許該報名單位本人存取自己的檔案。
6. 移除網頁應用資料庫帳號的 DBA/FILE 權限,遵循最小權限原則。
7. 立即清查並移除已上傳之惡意檔案,並就既有個資外洩進行通報與補救。