奇鼎事業股份有限公司 reflect XSS - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2024-00157
  •  發信 Vendor: 奇鼎事業股份有限公司
  • Title: 奇鼎事業股份有限公司 reflect XSS
  • Introduction: 經銷門市搜尋功能 reflect XSS,且未設定 session HTTPOnly,可竊取使用者身分

處理狀態

目前狀態

公開
Last Update : 2024/05/11
  • 新提交
  • 已審核
  • 已通報
  • 未回報修補狀況
  • 未複測
  • 公開

處理歷程

  • 2024/03/11 23:45:41 : 新提交 (由 ywc 更新此狀態)
  • 2024/03/18 20:56:04 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2024/03/19 18:21:14 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2024/03/19 18:21:14 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2024/05/11 03:00:07 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2024-00157
  • 通報者:ywc (ywc)
  • 風險:中
  • 類型:反射型跨站腳本攻擊 (Reflected Cross-Site Scripting)

參考資料

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

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

防護原則: OWASP - XSS (Cross Site Scripting) Prevention Cheat Sheet
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

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

相關網址

https://www.chiding.com.tw/shop.php
https://www.chiding.com.tw/shop.php?county=基隆市&district=信義區&zipcode=201%20or&page=
https://www.chiding.com.tw/shop.php?county=基隆市&district=信義區&zipcode=201%20or%20<h1>aaa</h1>&page=
https://www.chiding.com.tw/shop.php?county=基隆市&district=信義區&zipcode=201%20or%20<script>alert(1)</script>&page=
https://www.chiding.com.tw/shop.php?county=基隆市&district=信義區&zipcode=201%20or%20<script>alert(document.cookie)</script>&page=

敘述

在經銷門市搜尋功能中 zipcode 參數部分沒有經過 sanitize,可直接注入 HTML 的 metatag 如 <script> 等,此外亦沒有設定 CSP 等防護機制,攻擊者可透過該漏洞達成 XSS 攻擊,另外由於 session 部分沒有設定 HTTP Only 選項,因此攻擊者可透過該 XSS 漏洞誘騙已登入受害者點擊含惡意 payload 的連結,騙取得到 session,進而得到使用者帳號的控制權

在初步的測試中,發現在 zip 參數部分含有 OR 字串時(相關網址第二項),可能會觸發偵測 SQLi 的 WAF 之類的,進而顯示以下畫面

圖片

不過可看到內容部分含有使用者可控的參數字串,因此可以初步嘗試塞入 HTML metatag 如 h1 測試是否有針對輸入做過濾(相關網址第三項),而從下圖可發現 metatag 會被正常 rendering,可見這部分沒有做輸入的過濾

圖片

因此可以嘗試塞入 <script> metatag 並執行 javascript 語法(相關網址第四項),可發現跳出自行定義的顯示視窗,代表網頁確實執行了攻擊者所塞入的 javascript

圖片

而另外可以從開發者工具中看到相關 session 部分沒有設定 HTTPOnly,因此代表 session 資料可在 javascript 中讀取得到

圖片

因此,攻擊者可以在 javascript 中使用 document.cookie 變數取得使用者的 cookie 資料(相關網址第五項),如下圖所示

圖片

綜合以上,攻擊者可以預先撰寫好竊取 cookie 的相關 javascript 並注入到這個參數中,並誘騙使用者點擊此連結,騙取得到使用者的 session 資訊

修補建議

過濾輸入參數,如使用 DOMPurify 工具等
設定 CSP,提供進一層防禦
開啟 HTTPOnly 選項,避免惡意 javascript 讀取使用者 session

擷圖

留言討論

聯絡組織

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