臺北城市科技大學 招生暨校務系統反射型跨站腳本 (Reflected XSS) - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2026-00549
  •  發信 Vendor: 城市學校財團法人臺北城市科技大學
  • Title: 臺北城市科技大學 招生暨校務系統反射型跨站腳本 (Reflected XSS)
  • Introduction: 校務登入系統之 uid 參數未進行伺服器端過濾與輸出編碼,且先前僅以前端 maxlength 屬性限制輸入,導致攻擊者可輕易繞過長度限制並執行 XSS 攻擊

處理狀態

目前狀態

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

處理歷程

  • 2026/04/16 10:56:28 : 新提交 (由 Marco 更新此狀態)
  • 2026/04/16 11:07:50 : 新提交 (由 Marco 更新此狀態)
  • 2026/04/20 22:12:06 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/05/20 15:12:12 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/05/20 15:12:12 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/05/20 15:12:12 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/06/01 12:48:07 : 複測申請中 (由 組織帳號 更新此狀態)
  • 2026/06/02 02:25:54 : 確認已修補 (由 Marco 更新此狀態)
  • 2026/06/05 03:00:16 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2026-00549
  • 通報者:mlgzackfly (Marco)
  • 風險:低
  • 類型:反射型跨站腳本攻擊 (Reflected Cross-Site Scripting)

參考資料

攻擊者可經由該漏洞竊取使用者身份,或進行掛碼、轉址等攻擊行為。

漏洞說明: OWASP - Cross-site Scripting (XSS)
https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)

防護原則: OWASP - XSS (Cross Site Scripting) Prevention Cheat Sheet
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

防禦繞過方式: OWASP - XSS Filter Evasion Cheat Sheet
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://siw.tpcu.edu.tw/tsint/login_check.jsp

敘述

針對前次通報 ZD-2026-00341 之修復情況,本人於近期進行安全性追蹤時發現,目前的修復機制可能仍存在被繞過的風險,特此提出補充說明以協助校方進一步鞏固系統安全。

目前的修復方式似乎側重於前端 HTML 屬性(如 maxlength="10")的限制。雖然這能阻擋一般使用者的輸入嘗試,但在資訊安全實踐中,前端限制(Client-side validation)可被攻擊者輕易透過代理工具或指令碼繞過。

經檢測發現,臺北城市科技大學的招生暨校務資訊系統(SIW)在處理登入邏輯時存在顯著的安全缺陷。雖然系統前端 HTML 標籤(如帳號欄位 uid)設有 maxlength="10" 之限制,但該限制僅存在於瀏覽器端,並未在伺服器端(Server-side)進行相應的長度驗證與輸入過濾。

圖片

當使用者輸入不正確的帳號資訊時,伺服器會將該輸入內容直接反射回 HTML 報錯訊息中。由於缺乏 HTML 實體編碼(HTML Encoding),攻擊者可輕易透過自動化工具(如 curl)或瀏覽器開發者工具繞過前端 10 字元的長度限制,注入任意 JavaScript 代碼。

此外,該系統核心 Session Cookie (JSESSIONID) 缺失 HttpOnly 與 Secure 安全旗標,使得此 XSS 漏洞的實際危害提升至最高,攻擊者可藉此直接讀取並竊取使用者的登入憑證。

重現步驟

  1. 繞過前端限制:透過開發人員工具移除 maxlength ,繞過前端驗證,確認為無效修復方案)。

圖片

於帳號中輸入以下 XSS payload 執行 XSS 攻擊

<script>alert('HITCON ZeroDay')</script>

圖片

  1. 觀察回傳內容:伺服器回傳之錯誤訊息中,Payload 未經編碼即被執行:

圖片

影響

  1. 帳號劫持 (Account Takeover):配合 Cookie 缺失 HttpOnly 屬性,攻擊者可透過 XSS 腳本讀取 document.cookie 並將 Session ID 傳送至外部伺服器,達成直接劫持行政人員或學生帳號之目的。
  2. 社交工程與釣魚:攻擊者可利用此 XSS 修改頁面 DOM 結構,偽造登入介面或引導使用者下載惡意檔案。
  3. 修復方案失效證明:證實僅依賴前端 HTML 屬性(如 maxlength)進行安全性防護為錯誤實踐,系統目前仍處於易受攻擊狀態。

修補建議

1. 伺服器端輸入驗證 (Server-side Validation):
應在後端 JSP 程式碼中強制檢查所有輸入參數(如 uid, pwd)的長度與格式,若輸入內容不符合預期規則(例如超過 10 位數或包含特殊字元),應立即拒絕請求。

2. 輸出編碼 (Output Encoding):
在將任何使用者輸入的內容(如報錯訊息中的帳號名稱)輸出至 HTML 頁面之前,必須進行 HTML Entity 編碼。建議使用現成的安全函式庫(如 OWASP Java Encoder)將 < 轉換為 <,> 轉換為 >。

3. 加固 Cookie 安全標籤:
在伺服器配置(如 Tomcat/Jaguar Server 配置)中,為 JSESSIONID 強制啟用 HttpOnly 與 Secure 標籤,以防止 JavaScript 存取 Session Cookie,從而阻斷 XSS 導致的 Session 劫持路徑。

4. 弱驗證碼強化:
系統目前使用的明文數學運算驗證碼極易被自動化腳本破解(證明如重現步驟第 2 點),建議改用圖形驗證碼或現代化的多因子驗證(MFA)機制。

擷圖

留言討論

聯絡組織

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