Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2021-00116
- Vendor: KKTV
- Title: KKTV 網站可繞過付費牆漏洞
- Introduction: 伺服器未確實驗證、可繞過付費牆取得付費內容
處理狀態
目前狀態
公開
Last Update : 2021/05/14
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2021/03/14 18:22:37 : 新提交 (由 鄉民 更新此狀態)
- 2021/03/14 18:23:46 : 新提交 (由 鄉民 更新此狀態)
- 2021/03/14 23:04:19 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2021/03/16 18:21:49 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2021/03/16 18:21:49 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2021/05/14 03:00:02 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2021-00116
- 通報者:鄉民
- 風險:低
- 類型:存取控制缺陷 (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
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://www.kktv.me/play/01000425010003
敘述
POST https://api.kktv.me/v3/playback_tokens 取得的 playback_token 可用來向 https://license.kktv.com.tw/ 取得任意影片的 license 並播放該影片。
未付費使用者可透過 https://api.kktv.me/v3/titles/<title id>/episodes/<episode id>/mezzanine/manifests API 取得任意影片播放網址。其中 dash.url 雖然是有限制的低畫質網址,但可以透過將 .playback_p3.mpd 改成 .playback_p5.mpd 取得高畫質網址。
結合以上兩點,可以用下列方式繞過付費牆。
以觀看 我家女兒交不到男朋友!! 劇第四集為例,此劇只有前三集提供免費觀看
- 使用 manifest API (
https://api.kktv.me/v3/titles/<title id>/episodes/<episode id>/mezzanine/manifests) 取得欲觀看集數的 dash url.data.episodes[0].dash.url:https://kktv-theater.kk.stream/25/01000425010004_dc565f05b80d8529940311bb5bc7cf59/161228680347ad915113_dash.playback_p3.mpd
- 將該 url 修改成可以取得高畫質影片的 url
https://kktv-theater.kk.stream/25/01000425010004_dc565f05b80d8529940311bb5bc7cf59/161228680347ad915113_dash.playback_p5.mpd
- 開啟任意免費內容網頁 (這邊用同劇第三集)
- 透過 proxy 修改前述 manifest API 回傳內容、將
.data.episodes[0].dash.url內容更換為步驟2. 取得的 url
- 透過 proxy 修改前述 manifest API 回傳內容、將
- 即可觀看免費使用者應無法觀看的第四集,如下圖
- 左上顯示需升級觀看完整集數(1-3以外)
- 經過修改,實際播放內容為第四集,見影片截圖中右下的紅色愛心4
修補建議
提供 `playback_token` 的同時記錄該 `playback_token` 對應的 `episode_id`
license server 應檢查 client 提供的 `playback_token` 對應的 `episode_id` 是否與欲取得 license 的 `episode_id` 相同
擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。