情趣用品界第一把交椅 E大 結帳流程備註(remark)欄位儲存型跨站腳本攻擊(Stored XSS) - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2026-00490
  •  發信 Vendor: 情趣用品界第一把交椅
  • Title: 情趣用品界第一把交椅 E大 結帳流程備註(remark)欄位儲存型跨站腳本攻擊(Stored XSS)
  • Introduction: 欄位未對使用者輸入進行 HTML 編碼,攻擊者可在正常購物下單時注入惡意 JavaScript,該 payload 會儲存至資料庫並在購買記錄頁面及管理後台訂單詳情中觸發,可竊取管理員 Session 或執行任意操作。
  • 獎勵金

處理狀態

目前狀態

公開
Last Update : 2026/04/25
  • 新提交
  • 已審核
  • 已通報
  • 已修補
  • 已複測
  • 公開

處理歷程

  • 2026/04/02 15:23:39 : 新提交 (由 Marco 更新此狀態)
  • 2026/04/02 15:23:57 : 新提交 (由 Marco 更新此狀態)
  • 2026/04/07 22:44:35 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/04/09 18:34:04 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/04/09 18:34:04 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/04/09 18:34:04 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/04/21 13:44:37 : 複測申請中 (由 組織帳號 更新此狀態)
  • 2026/04/21 20:09:12 : 確認已修補 (由 Marco 更新此狀態)
  • 2026/04/25 03:00:10 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2026-00490
  • 通報者:mlgzackfly (Marco)
  • 風險:高
  • 類型:預存式跨站腳本攻擊 (Stored Cross-Site Scripting)

參考資料

攻擊者可經由該漏洞竊取使用者身份,或進行掛碼、轉址等攻擊行為。

漏洞說明: OWASP - Cross-site Scripting (XSS)
https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)

防護原則:
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

XSS 防禦繞過方式:
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://erotogenic.com.tw/checkout3_sure.php
https://erotogenic.com.tw/user02.php

敘述

漏洞概述

erotogenic.com.tw 的結帳確認功能(checkout3_sure.php)接受 POST 參數 remark(備註)並將其儲存至訂單資料庫。當使用者瀏覽購買記錄頁面(user02.php)時,備註內容會被直接嵌入到訂單列表的 <td> 標籤中,且未對 HTML 特殊字元進行任何編碼處理。

這使得攻擊者可以在備註欄位中注入任意 HTML 和 JavaScript,實現儲存型 XSS。

此漏洞的影響範圍特別嚴重:

  • 攻擊者只需正常下單即可注入 XSS payload(無需任何額外攻擊手法)
  • 管理員必須查看訂單,因此 XSS 必然會被觸發
  • 可用於竊取管理員 Session 或執行管理後台操作

重現步驟 (Steps to Reproduce)

  1. 使用任意帳號登入 erotogenic.com.tw
  2. 將任意商品加入購物車
  3. 進入結帳流程,填寫收件資訊(checkout2.phpcheckout3.php
  4. 在選擇繳費方式頁面,使用瀏覽器開發工具或攔截器(如 Burp Suite)修改 POST 請求,在 remark 欄位注入 XSS payload:
POST /checkout3_sure.php HTTP/2
Host: erotogenic.com.tw
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=<your_session>

checkout_type=ATM&name=測試&phone=0912345678&[email protected]&address=台北市&st_addr=&remark=<img src=x onerror=alert(document.domain)>
  1. 前往購買記錄頁面:https://erotogenic.com.tw/user02.php
  2. 觀察瀏覽器彈出 alert 視窗

圖片

原始碼分析

注入後,user02.php 訂單列表中的 HTML 原始碼:

<td>尚未付款</td>
<td><img src=x onerror=alert("admin_xss")></td>
<td>
    <a href="https://...

可以看到:

  • <img> 標籤未經任何編碼,直接寫入 DOM
  • onerror 事件處理器在圖片載入失敗時自動觸發
  • 不需要使用者任何互動即可觸發 XSS

影響 (Impact)

  1. 管理員帳號接管:攻擊者可透過 XSS 竊取管理員的 Session Cookie,接管管理後台
  2. 批量資料竊取:透過管理後台存取所有用戶的個人資料(姓名、地址、電話、Email)及訂單記錄
  3. 供應鏈攻擊:攻擊者可修改管理後台中的商品資訊、價格或收款設定
  4. 無需特殊權限:任何已註冊用戶透過正常購物流程即可發動攻擊
  5. 必然觸發:管理員日常管理訂單時必然查看訂單列表,XSS 無法迴避

與其他漏洞的差異

此漏洞與先前通報的 nickname/name 欄位 XSS 不同:

比較項目 nickname/name XSS remark XSS(本漏洞)
注入位置 個人資料維護 結帳備註欄位
觸發位置 個人頁面 / 導航列 訂單列表 / 管理後台
影響對象 自身 + CSRF 受害者 管理員
注入方式 需修改個人資料 正常購物流程
嚴重程度 High High(可攻擊管理員)

安全測試備註

測試過程中產生了以下未付款訂單(皆為「尚未付款」狀態,無實際金流),煩請站長協助從後台刪除:

訂單日期 訂單編號 狀態 備註內容
2026-04-02 202604021515502735 尚未付款 (空白)
2026-04-02 202604021516358232 尚未付款 (空白)
2026-04-02 202604021516369972 尚未付款 (空白)
2026-04-02 202604021516367318 尚未付款 SQLi 測試 payload
2026-04-02 202604021516369111 尚未付款 SQLi 測試 payload

測試帳號:[email protected]
以上訂單均未實際付款,僅為安全測試用途。

修補建議

1. 輸出編碼:在 user02.php 及管理後台顯示訂單備註時,使用 htmlspecialchars() 進行 HTML 實體編碼
2. 輸入過濾:在 checkout3_sure.php 接收備註內容時,過濾或移除 HTML 標籤
3. Content Security Policy:加入 CSP Header 限制 inline script 執行

擷圖

留言討論

聯絡組織

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