Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00410
- Vendor: 明志科技大學
- Title: 明志科技大學校園入口網站利用競爭條件繞過帳號鎖定機制
- Introduction: 透過併發封包觸發競爭條件,使多次密碼錯誤嘗試僅被寫入一次,進而成功繞過防暴力破解的次數限制
處理狀態
目前狀態
公開
Last Update : 2026/04/28
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2026/03/24 21:33:02 : 新提交 (由 M4RVjN 更新此狀態)
- 2026/03/24 21:35:26 : 新提交 (由 M4RVjN 更新此狀態)
- 2026/03/24 22:27:23 : 新提交 (由 M4RVjN 更新此狀態)
- 2026/03/24 22:43:23 : 新提交 (由 M4RVjN 更新此狀態)
- 2026/03/24 22:46:04 : 新提交 (由 M4RVjN 更新此狀態)
- 2026/03/25 15:04:12 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/09 18:22:46 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/09 18:22:46 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/09 18:22:46 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/20 14:44:18 : 已修補 (由 組織帳號 更新此狀態)
- 2026/04/28 03:00:06 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00410
- 通報者:M4RVjN (M4RVjN)
- 風險:中
- 類型:其他 (Other)
參考資料
暫無資料
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)
相關網址
https://portal.mcut.edu.tw/index.do
敘述
漏洞描述
目標系統的登入驗證機制存在檢查與使用時間差(TOCTOU)的競爭條件漏洞。攻擊者可透過同時發送帶有不同 JSESSIONID 的併發 HTTP 登入封包,繞過會話互斥鎖。這導致後端在處理錯誤登入計數時發生狀態覆寫,使多次密碼錯誤嘗試僅被記錄為一次,進而成功繞過系統設定的防暴力破解與帳號鎖定機制。
重現步驟
-
透過腳本發送無狀態請求,獲取獨立會話狀態,從伺服器的 Set-Cookie 標頭中取得多個全新且獨立的 JSESSIONID。此步驟旨在確保每個登入請求皆分配到獨立的 Session 物件,避免後端伺服器因等待同一個 Session 鎖而將併發請求強制序列化。( 腳本於附錄中)
-
在 Burp Suite Repeater 中,建立多個登入封包(此測試採用七個封包),統一設定為相同的目標帳號與錯誤密碼,各個封包的 JSESSIONID 分別替換為步驟 1 取得的獨立 JSESSIONID。隨後使用 Burp Suite 的 Send group (parallel) 功能,將這批封包同步送出。
- 併發封包一
- 併發封包二
- 併發封包三
- 併發封包四
- 併發封包五
- 併發封包六
- 併發封包七
- 併發封包一
-
在發送完 7 個併發的錯誤登入封包後,觀察回應可以發現僅被記錄一次輸入錯誤。
影響
攻擊者可利用此併發缺陷,對特定目標帳號進行高頻率的密碼猜測,有效提高惡意使用者爆破成功的可能性。
附錄
import requests
import re
url = "https://portal.mcut.edu.tw/index.do"
for i in range(1,9):
response = requests.get(url)
set_cookie = response.headers.get('Set-Cookie')
if set_cookie:
match = re.search(r'JSESSIONID=([^;]+)', set_cookie)
if match:
jsessionid = match.group(1)
print(f"{jsessionid}")
else:
print("未發現 JSESSIONID")
else:
print("未發現 Set-Cookie")擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。