ZeroJudge 檢查 reCAPTCHA 前先檢查了使用者帳號密碼,使 reCAPTCHA 無法防止刷密碼 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2022-00127
  •  發信 Vendor: ZeroJudge
  • Title: ZeroJudge 檢查 reCAPTCHA 前先檢查了使用者帳號密碼,使 reCAPTCHA 無法防止刷密碼
  • Introduction: 檢查 reCAPTCHA 前先檢查了使用者帳號密碼,使 CAPTCHA 無法防止刷密碼

處理狀態

目前狀態

公開
Last Update : 2022/04/24
  • 新提交
  • 已審核
  • 已通報
  • 未回報修補狀況
  • 未複測
  • 公開

處理歷程

  • 2022/02/22 07:38:12 : 新提交 (由 Hyperbound 更新此狀態)
  • 2022/02/25 11:20:09 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2022/02/25 12:16:00 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2022/02/25 12:16:00 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2022/02/25 12:16:00 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2022/04/24 03:00:04 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2022-00127
  • 通報者:Ching367436_ (Hyperbound)
  • 風險:低
  • 類型:邏輯漏洞 (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://zerojudge.tw/Login

敘述

於未通過 reCAPTCHA 認證情況下

若密碼有誤,會顯示如下
圖片

若正確,則是
圖片

於 source code https://github.com/jiangsir/ZeroJudge/tree/3.4.2

src/tw/zerojudge/Servlets/Utils/LoginServlet.java
第 57、68 行 呼叫了 UserService().getUserByAccountPasswd(account, passwd);
圖片

src/tw/zerojudge/DAOs/UserService.java
圖片

src/tw/zerojudge/DAOs/UserDAO.java
圖片

所以 src/tw/zerojudge/Servlets/Utils/LoginServlet.java 第 57、68 行所呼叫的會先判斷帳號密碼是否正確
然而那是於 src/tw/zerojudge/Servlets/Utils/LoginServlet.java 59、70 行的 reCAPTCHA 的檢查前

把那幾行換個順序即可修復

擷圖

留言討論

聯絡組織

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