分享日生活 訊息提示 reflected xss - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2024-00800
  •  發信 Vendor: 巨石創意有限公司
  • Title: 分享日生活 訊息提示 reflected xss
  • Introduction: 訊息提示使用 msg 參數作為內容直接嵌入未過濾,具 reflect xss 漏洞,且 session 未設定 HTTPOnly

處理狀態

目前狀態

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

處理歷程

  • 2024/07/16 16:23:50 : 新提交 (由 ywc 更新此狀態)
  • 2024/07/16 16:26:40 : 新提交 (由 ywc 更新此狀態)
  • 2024/07/20 00:23:44 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2024/08/12 17:08:19 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2024/08/12 17:08:19 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2024/08/12 17:08:20 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2024/09/15 03:00:02 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2024-00800
  • 通報者: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://sharingday.com.tw/login.php
https://sharingday.com.tw/login.php?msg=登入失敗
https://sharingday.com.tw/login.php?msg=%27);alert(document.cookie);</script>

敘述

在首頁中發現有會員登入頁面

圖片

隨意輸入帳號密碼 (e.g. aaa/aaa),會彈出登入失敗視窗,可發現訊息內容似乎與參數 msg 相同,推測後端程式是直接把參數內容嵌入

圖片

嘗試輸入單引號,發現沒有彈出應該要彈出的 alert 訊息,而觀察開發人員工具 console 頁籤輸出可發現 javascript 執行上出現問題,而在開發人員工具 element 頁籤中可看到出問題的地方是一個 alert 且中間有 3 個單引號,推測後端程式碼邏輯應該是直接把 msg 參數內容嵌入進 HTML 的 alert 函式中

圖片
圖片

此外在開發人員工具 application -> cookie 的頁籤中可觀察到重要的 session 沒有加上 HTTPOnly 屬性,代表可以用 javascript 讀取 session 資訊

圖片

建構 XSS payload ');alert(document.cookie);</script> 塞入 msg 參數中,發現除了第一次閉合掉的 alert 會彈出訊息之外,後續又彈出含有 session 資訊的 alert 訊息,顯示具有 reflected xss 漏洞

圖片

由於該網站有會員功能且未設定 session HTTPOnly 功能,攻擊者可構造 payload 誘騙使用者造訪連結,透過 javascript 竊取使用者 session,取得使用者登入身分

修補建議

設定 session 的 HTTPOnly 屬性
過濾 msg 參數
關閉不必要的提示訊息
使用 WAF 或 CSP 等工具進行防禦

擷圖

留言討論

聯絡組織

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