Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2025-00652
- Vendor: 衛生福利部
- Title: 陽明醫院SQLi注入攻擊
- Introduction: SQLi注入漏洞
處理狀態
目前狀態
公開
Last Update : 2025/07/24
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2025/06/30 16:24:17 : 新提交 (由 Elvis 更新此狀態)
- 2025/06/30 21:02:46 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/01 17:57:37 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/01 17:57:37 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/01 17:57:37 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/16 16:58:21 : 已修補 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/24 03:00:10 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2025-00652
- 通報者:summer78315 (Elvis)
- 風險:高
- 類型:資料庫注入攻擊 (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://www.ymhospital.com.tw/nym/web_mainmenu.php?id=53
敘述
在 web_mainmenu.php?id=… 參數處存在嚴重的 SQL 注入漏洞。攻擊者可透過修改 id 值(例如 id=53 UNION SELECT … 或布林盲注、時間盲注 payload)繞過原有查詢邏輯,進而讀取後端 MySQL 資料庫中的任意資料。使用 sqlmap 自動化掃描後,共回傳 36 個資料庫名稱(如 mis_emergency、mis_vaccine、ym_app、ymhdb*、mysql、information_schema 等)。若不加以修補,攻擊者甚至可藉此取得管理員權限,進一步修改、刪除或植入惡意資料,造成機密外洩或網站被植入後門。
修補建議
1.參數化查詢/預備語句
所有 SQL 語句都應改用 Prepared Statement(PDO、MyBatis、Hibernate 等 ORM 機制)來綁定變數,絕不直接把使用者輸入拼接到 SQL 字串中。
2.輸入驗證與過濾
在伺服端針對 id 類似整數參數做型別檢查(is_numeric())並限制範圍。
對所有文字欄位使用嚴格白名單或黑名單邏輯,移除或拒絕任何 SQL 關鍵字。
3.最小權限原則
資料庫帳號只賦予必要的讀取/寫入權限,避免使用 root 或高權限帳號連線。
把敏感操作(DDL、管理帳號)獨立到專用帳號,並限制只能從後端系統內部 IP 存取。
4.錯誤訊息隱藏
關閉顯示完整 SQL 錯誤(display_errors),改用自訂錯誤頁面或錯誤代碼,避免洩漏資料庫架構。
擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。