Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00841
- Vendor: 國立中興高級中學學校網站
- Title: 國立中興高級中學基於 DOM 的跨站腳本攻擊
- Introduction: 目標網站前端 JavaScript 未對網址來源(window.location.href)進行安全過濾,便直接代入 jQuery .append() 接收點,導致存在基於 DOM 的跨站腳本攻擊漏洞(DOM-based XSS)。
處理狀態
目前狀態
公開
Last Update : 2026/07/17
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2026/06/14 19:55:38 : 新提交 (由 陳宥甫 更新此狀態)
- 2026/06/17 00:04:05 : 新提交 (由 陳宥甫 更新此狀態)
- 2026/06/17 00:04:51 : 新提交 (由 陳宥甫 更新此狀態)
- 2026/06/21 13:45:47 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/06 17:02:10 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/06 17:02:10 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/06 17:02:10 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/09 13:03:41 : 已修補 (由 組織帳號 更新此狀態)
- 2026/07/17 03:00:20 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00841
- 通報者:lcooll (陳宥甫)
- 風險:高
- 類型:基於 DOM 的 XSS (DOM-based Cross-Site Scripting)
參考資料
攻擊者可經由該漏洞竊取使用者身份,或進行掛碼、轉址等攻擊行為。
漏洞說明: OWASP - Cross-site Scripting (XSS)
https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
防護原則:
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
XSS 防禦繞過方式:
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
漏洞說明: OWASP - Cross-site Scripting (XSS)
https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
防護原則:
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
XSS 防禦繞過方式:
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)
相關網址
https://www.chsh.ntct.edu.tw/home/main.js
https://www.chsh.ntct.edu.tw/home/
https://www.chsh.ntct.edu.tw/home/
敘述
漏洞種類:
基於 DOM 的跨站腳本攻擊(DOM-based Cross-Site Scripting, DOM-based XSS)
發現過程:
分析前端腳本 /home/main.js,確切漏洞成因源於以下程式碼邏輯缺陷:
- Source(輸入點):腳本透過
b = window.location.href;直接讀取未經邏輯過濾的完整 URL。 - Data Flow(資料流):未進行 HTML 實體編碼,直接以單引號拼接方式構造 HTML 字串:
a += "<a href='.../logout_m.php?continue=" + b + "'>登出</a>"; - Sink(觸發點):最後將被污染的字串直接傳入
$("#login_info").append(a);。
漏洞重現方式: - 本漏洞屬於「需認證之 DOM-based XSS (Authenticated DOM XSS)」。
- 在「未登入(訪客)」狀態下,
<div id="login_info">區塊並不會渲染,因此直接瀏覽 PoC 連結時畫面呈現正常。 - 當「已登入網站的使用者」點擊惡意建構的連結時,前端腳本執行登出按鈕渲染邏輯,該危險代碼(append)即會被執行。
- 程式碼佐證:由 F12 開發者工具中可確認
#login_info區塊與/home/main.js的對應綁定關係,代碼本身的安全性缺陷確實存在,足以構成資安威脅。
影響:
惡意腳本可於前端存取受害者瀏覽器的 Local Storage、Session Storage,或未設定 HttpOnly 屬性的敏感 Cookie。攻擊者可藉此竊取當前的連線憑證,達成瀏覽器會話挾持。
攻擊者可利用受害者已建立的登入狀態,透過前端腳本(如 Fetch 或 Ajax)在背景冒充受害者發送請求。例如:更換帳號密碼、竄改個人資料、或讀取不對外公開的內部敏感資訊。
修補建議
不使用字串拼接,改用 jQuery 的物件建構方式。透過 `.attr()` 方法設定屬性,以及 `.text()` 方法設定文字。jQuery 內部會自動對傳入的資料進行底層的安全轉義與編碼,從根本上杜絕「屬性逃逸」與「標籤注入」的可能性。
可以將
b = window.location.href;
a += "<a href='" + g_root_path + "config/logout_m.php?continue=" + b + "'>\u767b\u51fa</a>";
$("#login_info").append(a);
改成
var b = window.location.href;
var $logoutLink = $('<a></a>')
.text('登出')
.attr('href', g_root_path + 'config/logout_m.php?continue=' + encodeURIComponent(b));
$("#login_info").empty().append($logoutLink);
擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。