臺北城市科技大學 校務系統登入頁 Reflected Cross-Site Scripting (XSS) - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2026-00341
  •  發信 Vendor: 城市學校財團法人臺北城市科技大學
  • Title: 臺北城市科技大學 校務系統登入頁 Reflected Cross-Site Scripting (XSS)
  • Introduction: 校務系統登入流程在顯示登入錯誤訊息時未對使用者輸入進行 HTML escaping,導致可觸發 Reflected Cross-Site Scripting (XSS)。
  • 感謝函

處理狀態

目前狀態

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

處理歷程

  • 2026/03/16 23:02:51 : 新提交 (由 small R 更新此狀態)
  • 2026/03/16 23:03:40 : 新提交 (由 small R 更新此狀態)
  • 2026/03/16 23:08:44 : 新提交 (由 small R 更新此狀態)
  • 2026/03/16 23:33:58 : 新提交 (由 small R 更新此狀態)
  • 2026/03/18 15:12:51 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/03/26 18:22:01 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/03/26 18:22:01 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/03/26 18:22:01 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/04/08 14:26:02 : 已修補 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/04/10 14:31:31 : 已修補 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/04/10 14:31:43 : 已修補 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/04/10 14:50:39 : 複測申請中 (由 組織帳號 更新此狀態)
  • 2026/04/10 14:57:56 : 未修補完成 (由 small R 更新此狀態)
  • 2026/04/10 15:06:14 : 複測申請中 (由 組織帳號 更新此狀態)
  • 2026/04/10 15:10:43 : 確認已修補 (由 small R 更新此狀態)
  • 2026/04/14 03:00:14 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2026-00341
  • 通報者:alaner652 (small R)
  • 風險:低
  • 類型:反射型跨站腳本攻擊 (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/
https://siw.tpcu.edu.tw/tsint/perchk.jsp
https://siw.tpcu.edu.tw/tsint/login_check.jsp

敘述

在分析校務系統登入流程時,發現登入失敗頁面存在 Reflected Cross-Site Scripting (XSS) 漏洞。

系統會將使用者輸入的帳號 (uid) 內容直接回顯到登入錯誤訊息中,但未進行 HTML escaping。
當使用者輸入包含 HTML / JavaScript 的內容時,該內容會被瀏覽器解析並執行。

前端雖然對帳號欄位設定 maxlength 限制,但此限制僅存在於 client-side,可透過修改 DOM 或使用代理工具攔截並修改 HTTP request 繞過。

漏洞成因

登入頁面帳號欄位 HTML:

<input type="text" class="textone" name="uid" size="10" maxlength="15">

系統僅透過 maxlength 屬性限制輸入長度,但未在 server-side 進行適當輸入處理與 HTML escaping。

因此攻擊者仍可提交任意 payload。

圖片

重現步驟

Step 1

開啟校務系統登入頁面

圖片

Step 2

在帳號欄位輸入以下 payload

<script>alert(1)</script>

圖片

Step 3

提交登入請求

登入失敗後,系統會回顯帳號輸入內容。

Step 4

伺服器回應 HTML 內容包含 payload:

<font color="red">
[<script>alert(1)</script>] 無此帳號或密碼不正確,請重新輸入!
</font>

由於未進行 HTML escaping,瀏覽器解析 HTML 時會直接執行 JavaScript。

圖片

Step 5

瀏覽器成功觸發 JavaScript alert(1)

圖片

Proof of Concept (PoC)

透過 Burp Suite 攔截登入請求並修改 uid 參數:

POST /tsint/perchk.jsp HTTP/1.1
Host: siw.tpcu.edu.tw
Content-Type: application/x-www-form-urlencoded

hid_type=S&uid=<script>alert(1)</script>&pwd=0&err=N&fncid=&ls_chochk=N

伺服器回應內容中包含未經處理的輸入:

[<script>alert(1)</script>] 無此帳號或密碼不正確,請重新輸入!

因此導致 JavaScript 被瀏覽器執行。

影響

攻擊者可構造惡意 payload,使受害者在瀏覽器中執行任意 JavaScript。

圖片

可能造成:

  • 使用者端 JavaScript 執行
  • DOM manipulation
  • UI 偽造 / 釣魚攻擊
  • 若與其他漏洞結合,可能造成更進一步安全風險

修補建議

建議採取以下措施:

1. 對所有輸出至 HTML 的使用者輸入進行 **HTML escaping**

例如:

```
< → <
> → >
```

2. 避免直接將 request parameter 輸出至 HTML
3. 在 server-side 進行輸入驗證
4. 前端限制(如 maxlength)僅作為 UI 控制,不應作為安全機制
5. 建議使用安全模板引擎或統一輸出編碼機制

擷圖

留言討論

聯絡組織

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