Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2025-00471
- Vendor: 精鏡傳媒股份有限公司
- Title: 鏡週刊 Open Redirect and Price Tampering
- Introduction: 會員可任意修改付款金額,僅用 1 元即解鎖原本需付費的文章及Premium會員,並存在 Open Redirect 可作為釣魚跳板。
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2025/05/27 22:23:32 : 新提交 (由 CheN.. 更新此狀態)
- 2025/05/28 00:26:21 : 新提交 (由 CheN.. 更新此狀態)
- 2025/05/28 00:28:51 : 新提交 (由 CheN.. 更新此狀態)
- 2025/05/28 00:30:22 : 新提交 (由 CheN.. 更新此狀態)
- 2025/05/28 04:47:59 : 新提交 (由 CheN.. 更新此狀態)
- 2025/05/30 09:15:38 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/06/12 14:49:59 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/06/12 14:49:59 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/06/16 10:04:34 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/06/16 10:06:05 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/22 15:41:09 : 已修補 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/07/30 03:00:04 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2025-00471
- 通報者:SamChen_696 (CheN..)
- 風險:高
- 類型:邏輯漏洞 (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://staging.mirrormedia.mg/login?destination=https://samchen.blog
https://www.mirrormedia.mg/api/v2/newebpay/v1
敘述
備註:已先寄信至客服信箱,確保漏洞得到妥善修復,同步通報至hitcon平台
於使用貴站服務看一些時事新聞時,發現以下兩項安全漏洞,分別是「Open Redirect」及「Price Tampering」問題,可能導致釣魚攻擊與濫刷訂閱,需要請相關協助確認並修復。
問題一:Open Redirect
已登入的會員透過點擊"https://www.mirrormedia.mg/login?destination=https://samchen.blog" 和 "https://staging.mirrormedia.mg/login?destination=https://samchen.blog" ,即可跳轉至 https://samchen.blog,攻擊者可利用此作為釣魚跳板。(未登入之會員透過此2連結被誘導登入後也會跳轉至攻擊者網站)
問題二:Price Tampering
一般付費文章需透過加入 Premium 會員或單篇解鎖才能觀看。但我觀察整個下單付款流程後發現,當系統將付款資訊傳送至藍新金流(POST /api/v2/newebpay/v1)時,客戶端可直接修改其中的 Amt(付款金額)參數,而後端並未將此金額與「文章原價」或「訂閱方案價格」做比對驗證;因此攻擊者只要將 Amt=原價 改為 Amt=1 或其他任意數值,即可繞過後端驗證,順利完成交易並成功解鎖文章。
POST /api/v2/newebpay/v1 HTTP/2
Host: www.mirrormedia.mg
{"Amt":"1","ClientBackURL":"https://www.mirrormedia.mg/subscribe/fail?amount=10&code=one_time&memberFirebaseId=[CENSORED]3&orderNumber=M25052702478&postId=290344&purchasedAtUnixTime=1748350976","Email":"CENSORED","EmailModify":"1","ItemDesc":["","鏡週刊MirrorMedia"],"LoginType":"0","MerchantID":"MS38267013","MerchantOrderNo":"M25052702478","NotifyURL":"https://payment-webhooks.mirrormedia.mg/newebpay?code=one_time","OrderComment":"M25052702478","RespondType":"JSON","ReturnURL":"https://www.mirrormedia.mg/subscribe/return","TimeStamp":"1748350976","TokenTerm":"CENSORED","TradeLimit":"900","Version":"1.6"}
PoC
https://www.mirrormedia.mg/login?destination=https://samchen.blog
https://staging.mirrormedia.mg/login?destination=https://samchen.blog
影響
Open Redirect:可使攻擊者可誘導使用者點擊惡意連結(請參考 https://www.invicti.com/learn/open-redirect-open-redirection/)
Price Tampering:攻擊者可在付款流程中自行修改付款金額為任意數值(如 1 元),繞過原本的方案金額驗證,並成功付款後解鎖原本需費用的付費文章。造成應收損失和影響正常/付費會員權益
2025/05/28 Update
發現到月訂閱制會員也存在相同問題,也是使用同一個api發送付款請求,可以用1元的價格購買原價79元的Premium會員(甚至年訂閱499),請儘速的做修補,怕可能有不法人士會透過此漏洞大量刷付費會員拿到拍賣網站上賤賣帳號......
可以閱讀會員專區的所有文章......
修補建議
後端金額一致性驗證:建立「方案價格表」,Webhook 回呼時對比解密後的實付金額與價格表中的expectedAmt,若不符則拒絕解鎖。
禁止前端直接拼接 Amt 傳入金流,所有金額資訊應由後端在伺服器端生成。
加強 destination 驗證:嚴格限制可用的重定向網址,僅允許預先定義的白名單域名,並拒絕任何非授權的請求。